Server.Transfer("webform3.aspx");Session["@s_name"]= nameTextBox.Text .Trim ()
 顺序换一下

解决方案 »

  1.   

    在webform3.aspx添好数据提交后,我就是想把第一页中的nameTextBox.Text .Trim 值也插入表中,可插入代码没说有其它的错,只提示 :必须声明变量 '@s_name'。我的插入代码如下
      
    int @condtion=0;
     string ConnStr="server=ED32E0D74620400;database=kang;uid=sa;pwd=;";
    // 创建Connection和Command对象
    SqlConnection Conn = new SqlConnection(ConnStr);
    string str_cmd="insert into parameter (name,path,condtion) values" + " (@s_name,@path,@condtion)";
    SqlCommand  myCommand = new SqlCommand(str_cmd,Conn );
     Conn.Open();
    int ExeNum=myCommand.ExecuteNonQuery();
     if(ExeNum==0)
        {
       Console.Write("成功 ");
        }
      else
       {
       Console.Write("失败");
    }
       Conn.Close();
      

  2.   

    你用了传参方式的SQL查询.但是没有给sqlcommand参数,需要类似下面
    SqlParameter[] myParams=new SqlParameter[3];//3个参数
    myParams[0]=new SqlParameter("@s_name",SqlDbType.VarChar);//第一个参数@s_name,类型varchar
    myParams[0].Value=Session["@s_name"].ToString();//值
    myParams[1].....
    .....后面的参数按自己实际情况加你Session["@s_name"]的@s_name和SQL语句里面的@s_name并不是一个概念,没什么关系的.
    而且定义变量名字最好不要用@开始.
      

  3.   

    我只引用第一页面的值s_name,,其它两个@path,@condtion是webform3.aspx的值,我改如下
     int @condtion=0;
    string ConnStr="server=ED32E0D74620400;database=kang;uid=sa;pwd=;"
     // 创建Connection和Command对象
      // 初始化Command对象
      SqlParameter[] myParams=new SqlParameter[0];
      myParams[0]=new SqlParameter("s_name",SqlDbType.Int);//
      myParams[0].Value=Session["s_name"].ToString();//
      SqlConnection Conn = new SqlConnection(ConnStr);
      string str_cmd="insert into parameter (name,path,condtion) values" + " (s_name,@path,@condtion)";
      SqlCommand  myCommand = new SqlCommand(str_cmd,Conn );
      Conn.Open();
      int ExeNum=myCommand.ExecuteNonQuery();
      if(ExeNum==0)
      {
      Console.Write("fefgr ");
      }
      else
      {
      Console.Write("fefgr ");
      }
       Conn.Close();运行时错误提示:索引超出了数组界限。行 147:myParams[0]=new SqlParameter("s_name",SqlDbType.Int);//
    谢谢指导
      

  4.   

    string ConnStr="server=ED32E0D74620400;database=kang;uid=sa;pwd=;";
    SqlConnection Conn = new SqlConnection(ConnStr); string str_cmd="insert into parameter (name,path,condtion) values" + " (@s_name,@path,@condtion)";
    SqlCommand  myCommand = new SqlCommand(str_cmd,Conn ); myCommand.Parameters.Add("@s_name",SqlDbType.VarChar);
    myCommand["@s_name"]=Session["s_name"].ToString();
    myCommand.Parameters.Add("@path",SqlDbType.VarChar);
    myCommand["@path"]="testpath";
    myCommand.Parameters.Add("@condtion",SqlDbType.Int);
    myCommand["@condtion"]=0; int ExeNum=myCommand.ExecuteNonQuery();
    if(ExeNum==0)
    {
    Console.Write("error");
    }
    else
    {
    Console.Write("OK");
    }
    Conn.Close();
      

  5.   

    @@@???存储过程里的东西跑到session干吗非要加个@作session名字干吗
      

  6.   

    顶8楼,session可以在页面之间共享,干嘛还要把它传过去?