private void ReadStoredProc()
        { 
            //建立连接
            SqlConnection cn = new SqlConnection(connectionString);
            //定义指令,类型为存储过程
            SqlCommand cmd = new SqlCommand("addcangku", cn);
            cmd.CommandType = CommandType.StoredProcedure;
            //添加参数
            cmd.Parameters.Add("@B", textBox1.Text);
            cmd.Parameters.Add("@C", textBox2.Text);
            cmd.Parameters.Add("@D", textBox3.Text);
            cmd.Parameters.Add("@E", textBox4.Text);
            cmd.Parameters.Add("@F", textBox5.Text);
            //打开连接
            cn.Open();
             cn.Close();
        }麻烦大家帮我看看,这个代码有什么问题,为什么执行不了,编译时没有问题的

解决方案 »

  1.   

    执行查询语句exec addcangku 1,1,1,1,1  的时候是能用的,帮我看看吧,谢拉
      

  2.   

    程序编译的时候会有警告 
    警告 1 “System.Data.SqlClient.SqlParameterCollection.Add(string, object)”已过时:“Add(String parameterName, Object value) has been deprecated.  Use AddWithValue(String parameterName, Object value).  http://go.microsoft.com/fwlink/?linkid=14202”
      

  3.   

    你是用的.NET 2.0 吧,这样试试:
    --------------------------------------------------------------------
    private void ReadStoredProc()
            { 
                //建立连接
                SqlConnection cn = new SqlConnection(connectionString);
                //定义指令,类型为存储过程
                SqlCommand cmd = new SqlCommand("addcangku", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                //添加参数
                cmd.Parameters.Add("@B", SqlDbType.VarChar, 5);
                cmd.Parameters.Add("@C", SqlDbType.VarChar, 5);
                cmd.Parameters.Add("@D", SqlDbType.VarChar, 5);
                cmd.Parameters.Add("@E", SqlDbType.VarChar, 5);
                cmd.Parameters.Add("@F", SqlDbType.VarChar, 5);
                //给参数付值
                cmd.Parameters.["@B"].Value=textBox1.Text;
                cmd.Parameters.["@C"].Value=textBox2.Text;
                cmd.Parameters.["@D"].Value=textBox3.Text;
                cmd.Parameters.["@E"].Value=textBox4.Text;
                cmd.Parameters.["@F"].Value=textBox5.Text;
                //打开连接
                cn.Open();
                 cn.Close();
            }
    --------------------------------------------------------------------
      

  4.   

    cmd.Parameters.Add("@C", SqlDbType.VarChar, 5);
    根据自己参数的类型和长度设置
      

  5.   

    难道cmd.ExecuteNoQuery()不要吗?
      

  6.   

    cmd.Parameters.["@B"].Value=textBox1.Text;
    这里的.["@B"].应输入标识符
      

  7.   

    不好意思,刚才那多了个点
    --------------------------------------------------------------------
    private void ReadStoredProc()
            { 
                //建立连接
                SqlConnection cn = new SqlConnection(connectionString);
                //定义指令,类型为存储过程
                SqlCommand cmd = new SqlCommand("addcangku", cn);
                cmd.CommandType = CommandType.StoredProcedure;
                //添加参数
                cmd.Parameters.Add("@B", SqlDbType.VarChar, 5);
                cmd.Parameters.Add("@C", SqlDbType.VarChar, 5);
                cmd.Parameters.Add("@D", SqlDbType.VarChar, 5);
                cmd.Parameters.Add("@E", SqlDbType.VarChar, 5);
                cmd.Parameters.Add("@F", SqlDbType.VarChar, 5);
                //给参数付值
                cmd.Parameters["@B"].Value=textBox1.Text;
                cmd.Parameters["@C"].Value=textBox2.Text;
                cmd.Parameters["@D"].Value=textBox3.Text;
                cmd.Parameters["@E"].Value=textBox4.Text;
                cmd.Parameters["@F"].Value=textBox5.Text;
                //打开连接
                cn.Open();
                 cn.Close();
            }
    --------------------------------------------------------------------
    这样才对
      

  8.   

    构造参数同上,
    cn.open()后面加上cmd.ExecuteNoQuery();
      

  9.   

    连cmd.ExecuteNonQuery();都没有。怎么会执行呢?
      

  10.   

    你没有执行语句阿,加上cmd.ExecuteNonQuery();就ok了