过程或函数'InserttblIssu'需要参数'@IssueData',这是未提供的。 [英] Procedure or function 'InserttblIssu' expects parameter '@IssueData', which was not supplied.
问题描述
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屋!