过程或函数"sp_SqlImage"需要未提供的参数"@ID". [英] Procedure or function 'sp_SqlImage' expects parameter '@ID', which was not supplied.

查看:102
本文介绍了过程或函数"sp_SqlImage"需要未提供的参数"@ID".的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好

请帮助我.

过程或函数"sp_SqlImage"需要未提供的参数"@ID".

我在也在表中创建的Sql过程中声明了参数ID.

但是我得到这个错误请帮助

我的代码是

 公共 部分  class  TableAdd:System.Web.UI.Page
    {
        DataSet ds =  DataSet();

        SqlConnection con;
        SqlCommand cmd =  SqlCommand();
        SqlParameter sp1 =  SqlParameter();
        SqlParameter sp2 =  SqlParameter();
        SqlParameter sp3 =  SqlParameter();
        SqlParameter sp4 =  SqlParameter();
        SqlParameter sp5 =  SqlParameter();
        SqlParameter sp6 =  SqlParameter();
   } 


-------------------------------------------------- --------
这是页面上的添加按钮.

 受保护的 无效 Button1_Click(对象发​​件人,EventArgs e)
       {
           con =  SqlConnection(" );
           //  cmd.Parameters.Add("@ ID",SqlDbType.BigInt).Value = Convert.ToInt32(txtID.文字); 
           cmd.Parameters.Add(" ,SqlDbType.VarChar).Value = txtName.Text;
           cmd.Parameters.Add(" ,SqlDbType.VarChar).Value = txtDesc.Text;
           cmd.Parameters.Add(" ,SqlDbType.Binary).Value = txtImage.Text;
           cmd.Parameters.Add(" ,SqlDbType.VarChar).Value = txtActive.Text;
           cmd.Parameters.Add(" ,SqlDbType.VarChar).Value = txtCreatedBy.Text;
           cmd.Parameters.Add(" ,SqlDbType.DateTime).Value = txtCreDate.Text;
           cmd =  SqlCommand("  ,con);
           cmd.CommandType = CommandType.StoredProcedure;



           con.Open();
           cmd.ExecuteNonQuery();
           con.Close();
       } 


------------------------------------------------

解决方案

您已注释掉以下行:

 //  cmd.Parameters.Add("@ ID",SqlDbType.BigInt).值= Convert.ToInt32(txtID.Text);  



取消注释并设置正确的值.错误表明存储过程确实将ID作为定义的参数之一,因此您需要将其与代码中的其他参数一起传递.


0.您的存储过程需要一个名为@id的参数.
1.您有一行注释,可能需要提供@ID参数.
2.

您的班级包含此

 SqlCommand cmd =  SqlCommand(); 



然后在按钮上单击

 con =  SqlConnection(" );
           //  cmd.Parameters.Add("@ ID",SqlDbType.BigInt).Value = Convert.ToInt32(txtID.文本); < ----取消注释可能应该起作用,也可以在同一代码块中看到以下注释
           cmd.Parameters.Add(" ,SqlDbType.VarChar).Value = txtName.Text;
           cmd.Parameters.Add(" ,SqlDbType.VarChar).Value = txtDesc.Text;
           cmd.Parameters.Add(" ,SqlDbType.Binary).Value = txtImage.Text;
           cmd.Parameters.Add(" ,SqlDbType.VarChar).Value = txtActive.Text;
           cmd.Parameters.Add(" ,SqlDbType.VarChar).Value = txtCreatedBy.Text;
           cmd.Parameters.Add(" ,SqlDbType.DateTime).Value = txtCreDate.Text;
           cmd =  SqlCommand("  ,con); // < ----------这是什么和为什么?
           cmd.CommandType = CommandType.StoredProcedure; 



为什么在向它添加了这么多参数之后执行新的on命令.相反,您应该这样做

 cmd.Connection = con;
cmd.CommandText = " ; 


Hello

Plz help me with this.

Procedure or function ''sp_SqlImage'' expects parameter ''@ID'', which was not supplied.

I have declared the parameter ID in Sql procedure also created in table.

But i get this error plz help

My code is

public partial class TableAdd : System.Web.UI.Page
    {
        DataSet ds = new DataSet();

        SqlConnection con;
        SqlCommand cmd = new SqlCommand();
        SqlParameter sp1 = new SqlParameter();
        SqlParameter sp2 = new SqlParameter();
        SqlParameter sp3 = new SqlParameter();
        SqlParameter sp4 = new SqlParameter();
        SqlParameter sp5 = new SqlParameter();
        SqlParameter sp6 = new SqlParameter(); 
   }


----------------------------------------------------------
This is the add button on the page.:

protected void Button1_Click(object sender, EventArgs e)
       {
           con = new SqlConnection("server=203.199.15.181; database= commonlogin;uid=sa;pwd=nirwan612");
           //cmd.Parameters.Add("@ID", SqlDbType.BigInt).Value =Convert.ToInt32( txtID.Text);
           cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = txtName.Text;
           cmd.Parameters.Add("@Description", SqlDbType.VarChar).Value = txtDesc.Text;
           cmd.Parameters.Add("@Image", SqlDbType.Binary).Value = txtImage.Text;
           cmd.Parameters.Add("@Active", SqlDbType.VarChar).Value = txtActive.Text;
           cmd.Parameters.Add("@CreatedBy", SqlDbType.VarChar).Value = txtCreatedBy.Text;
           cmd.Parameters.Add("@CreatedDate", SqlDbType.DateTime).Value = txtCreDate.Text;
           cmd=new SqlCommand ("sp_SqlImage", con);
           cmd.CommandType =CommandType.StoredProcedure;



           con.Open();
           cmd.ExecuteNonQuery ();
           con.Close();
       }


------------------------------------------------

解决方案

You have commented out this line:

//cmd.Parameters.Add("@ID", SqlDbType.BigInt).Value =Convert.ToInt32( txtID.Text);



Uncomment it and set the correct value. Error tells that Stored Procedure does have ID as one of the parameter defined and you need to pass it along with others from your code.


0. your stored procedure expects a parameter called @id.
1. you have a line commented which perhaps is needed to supply the @ID parameter.
2.

your class contains this

SqlCommand cmd = new SqlCommand();



then on button click

con = new SqlConnection("server=203.199.15.181; database= commonlogin;uid=sa;pwd=nirwan612");
           //cmd.Parameters.Add("@ID", SqlDbType.BigInt).Value =Convert.ToInt32( txtID.Text); <----Uncommenting this probably should work, also see one comment below in same code block
           cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = txtName.Text;
           cmd.Parameters.Add("@Description", SqlDbType.VarChar).Value = txtDesc.Text;
           cmd.Parameters.Add("@Image", SqlDbType.Binary).Value = txtImage.Text;
           cmd.Parameters.Add("@Active", SqlDbType.VarChar).Value = txtActive.Text;
           cmd.Parameters.Add("@CreatedBy", SqlDbType.VarChar).Value = txtCreatedBy.Text;
           cmd.Parameters.Add("@CreatedDate", SqlDbType.DateTime).Value = txtCreDate.Text;
           cmd=new SqlCommand ("sp_SqlImage", con); //<----------WHAT and WHY THIS?
           cmd.CommandType =CommandType.StoredProcedure;



Why are you doiing a new on command after adding so many parameters to it. instead you should do

cmd.Connection = con;
cmd.CommandText = "sp_SqlImage";


这篇关于过程或函数"sp_SqlImage"需要未提供的参数"@ID".的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆