过程或函数'InserttblIssu'需要参数'@IssueData',这是未提供的。 [英] Procedure or function 'InserttblIssu' expects parameter '@IssueData', which was not supplied.

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

问题描述

tbl问题:

tbl Issue:

Issue ID | Title | Copies | IssueDate | ReturnDate | Member





插入查询:(我在设置身份的问题ID)



Insert query:(IssueID I've set the identity)

ALTER PROCEDURE [dbo].[InserttblIssu]

(
@Title nvarchar (100),
@Copies int,
@IssueData datetime,
@ReturnDate datetime,
@MemberID varchar (50)
)

as

insert into tblIssue(Title, Copies, IssueData, ReturnDate, MemberID)
values (@Title, @Copies, @IssueData, @ReturnDate, @MemberID)

insert into tblReturn(Title, Copies, IssueData, ReturnDate, MemberID)
values (@Title, @Copies, @IssueData, @ReturnDate, @MemberID)





加入问题表:



Join on Issue table:

ALTER PROCEDURE [dbo].[ReadtblIssueJoin]

as

Select IssueID,Title,Copies,IssueData,ReturnDate,MemberName
from tblIssue
join tblMember
  on tblIssue.MemberID = tblMember.MemberID





按钮上的C#代码保存:



C# code on button Save:

private void btnIss_Click(object sender, EventArgs e)
      {
          try
          {
              string c = ConfigurationManager.ConnectionStrings["Constr"].ConnectionString;
              SqlConnection conn = new SqlConnection(c);
              using (SqlCommand cmd = new SqlCommand("InserttblIssu", conn))
              {
                  cmd.CommandType = CommandType.StoredProcedure;
                  conn.Open();
                  cmd.Parameters.Add("@Title", SqlDbType.NVarChar, 100).Value    = metroComboBox1.Text;
                  cmd.Parameters.Add("@Copies", SqlDbType.Int).Value             = Convert.ToInt32(metroTextBox1.Text);
                  cmd.Parameters.Add("@IssueDate", SqlDbType.DateTime).Value     = Convert.ToDateTime(DateTime1.Text);
                  cmd.Parameters.Add("@ReturnDate", SqlDbType.DateTime).Value    = Convert.ToDateTime(metroDateTime2.Text);
                  cmd.Parameters.Add("@MemberID", SqlDbType.VarChar, 50).Value   = Convert.ToInt32(metroComboBox2.Text);
                  cmd.ExecuteNonQuery();
                  conn.Close();
                  storedprocIssue();
              }
          }
          catch (SqlException ex)
          {
              MetroMessageBox.Show(this, ex.Message);
          }
      }





它显示错误消息框:过程或函数'InserttblIssu'预期参数'@IssueData',未提供。

推荐答案

这是因为与您的代码相比,存储过程中只有拼写错误。 />
您希望@IssueData作为参数,但是从代码发送@IssueDate。



更改程序,您就完成了。



This is due to just typo in your stored proc as compared to your code.
You are expecting @IssueData as parameter but sending @IssueDate from code.

Change the procedure and you are done.

ALTER PROCEDURE [dbo].[InserttblIssu]
 
(
@Title nvarchar (100),
@Copies int,
@IssueDate datetime,
@ReturnDate datetime,
@MemberID varchar (50)
)
 
as
 
insert into tblIssue(Title, Copies, IssueData, ReturnDate, MemberID)
values (@Title, @Copies, @IssueDate, @ReturnDate, @MemberID)
 
insert into tblReturn(Title, Copies, IssueData, ReturnDate, MemberID)
values (@Title, @Copies, @IssueDate, @ReturnDate, @MemberID)





或者(不要),

您可以更改代码,例如



Alternatively(don't do),
you can change the code like

cmd.Parameters.Add("@IssueData", SqlDbType.DateTime).Value     = Convert.ToDateTime(DateTime1.Text);





希望,它有帮助:)



Hope, it helps :)


你有参数名称@ IssueData在您的存储过程中,在代码中传递它为

You have parameter name "@IssueData" in your stored procedure while in code you are passing it as
cmd.Parameters.Add("@IssueDate", SqlDbType.DateTime).Value     = Convert.ToDateTime(DateTime1.Text);





a错误代码使其成为@IssueData而不是@IssueDate







您可以将参数名称改为@IssueDate而不是@IssueData。



错误信息是自解释的,需要注意错误信息。



a typo mistake in code make it "@IssueData" instead of "@IssueDate"

OR

You can alter procedure with parameter name as "@IssueDate" instead of "@IssueData".

Error message is self explanatory need to attention on error messages.


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

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