我在通过存储过程更新SQL数据库中的字段时遇到麻烦。以下是c#代码。我在存储过程和C#代码中都没有语法错误或任何错误。
private void btnUpdate_Click(object sender, EventArgs e)
{
try
{
SqlCommand commandp = new SqlCommand("spUpdateCmpStructure", dbcon.con);
commandp.CommandType = CommandType.StoredProcedure;
commandp.Parameters.AddWithValue("@cmpID", txtCmp.Text.ToString());
commandp.Parameters.AddWithValue("@cmpName", txtCmp.Text.ToString());
commandp.Parameters.AddWithValue("@cmpDesc", txtDetails.Text.ToString());
commandp.Parameters.AddWithValue("@cmpAddress", txtAddress.Text.ToString());
commandp.Parameters.AddWithValue("@cmpType", cbType.Text.ToString());
commandp.Parameters.AddWithValue("@cmpParent", cbParent.Text.ToString());
dbcon.openConnection();
int check = commandp.ExecuteNonQuery();
if (check > 0)
{
MessageBox.Show(txtCmp.Text.ToString() + " Updated");
}
else
{
MessageBox.Show(txtCmp.Text.ToString() + " Update Failed");
}
dbcon.closeConnection();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
dbcon.closeConnection();
}
以下是存储过程
USE [xxx]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Spupdatecmpstructure] @cmpID VARCHAR(10),
@cmpName VARCHAR(50),
@cmpDesc VARCHAR(100),
@cmpAddress VARCHAR(50),
@cmpType VARCHAR(20),
@cmpParent VARCHAR(50)
AS
BEGIN
UPDATE cmpStructure
SET cmpName = @cmpName,
cmpDesc = @cmpDesc,
cmpAddress = @cmpAddress,
cmpType = @cmpType,
cmpParent = @cmpParent
WHERE cmpID = @cmpID
END
由此您可以看到,id和name字段以相同的值txtCmp.Text.ToString()为界
commandp.Parameters.AddWithValue("@cmpID", txtCmp.Text.ToString());
commandp.Parameters.AddWithValue("@cmpName", txtCmp.Text.ToString());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句