使用这个编码,虽然我给了fruitId,我需要检索fruitname,使用它会显示一些错误..任何一个帮助......
string constring = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
using (SqlConnection con = new SqlConnection(constring))
{
using (SqlCommand cmd = new SqlCommand("savefruit11", con))
{
con.Open();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@FruitsId", int.Parse(TextBox3.Text.Trim()));
cmd.Parameters.Add("@Fruitsname", SqlDbType.VarChar, 50);
cmd.Parameters["@Fruitsname"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
con.Close();
TextBox4.Text = "Fruit Name:"+cmd.Parameters["@FruitName"].Value.ToString();
}
}
上述代码的存储过程。
use[FruitsDB]
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
Create PROCEDURE [dbo].[savefruit11]
@FruitId INT,
@FruitName VARCHAR(50) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SELECT @FruitName = Fruitsname
FROM Fruits1
WHERE FruitsId = @FruitId
END
答案 0 :(得分:4)
cmd.Parameters.Add("@Fruitsname", SqlDbType.VarChar, 50);
cmd.Parameters["@Fruitsname"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
con.Close();
TextBox4.Text = "Fruit Name:"+cmd.Parameters["@FruitName"].Value.ToString();
您的参数名为@Fruitsname
,但您可以使用@FruitName
获取该参数。您在第一个版本中有一个额外的s
。通过将第一个@FruitsName
更改为@FruitName
来保持一致,这将与您在存储过程中的内容相匹配。
或者,正如Henk在评论中建议的那样,创建一个包含参数名称的const字符串,以便它在所有用法中保持一致。
答案 1 :(得分:1)
使用cmd.ExecuteQuery
或cmd.ExecuteScalar
//To Execute SELECT Statement
ExecuteQuery()
//To Execute Other Than Select Statement(means to Execute INSERT/UPDATE/DELETE)
ExecuteNonQuery()
使用你的udpate
存储过程中的参数名称中缺少
答案 2 :(得分:1)
使用以下示例方式
using (SqlConnection connection = new SqlConnection())
{
string connectionStringName = this.DataWorkspace.AdventureWorksData.Details.Name;
connection.ConnectionString =
ConfigurationManager.ConnectionStrings[connectionStringName].ConnectionString;
string procedure = "HumanResources.uspUpdateEmployeePersonalInfo";
using (SqlCommand command = new SqlCommand(procedure, connection))
{
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(
new SqlParameter("@EmployeeID", entity.EmployeeID));
command.Parameters.Add(
new SqlParameter("@NationalIDNumber", entity.NationalIDNumber));
command.Parameters.Add(
new SqlParameter("@BirthDate", entity.BirthDate));
command.Parameters.Add(
new SqlParameter("@MaritalStatus", entity.MaritalStatus));
command.Parameters.Add(
new SqlParameter("@Gender", entity.Gender));
connection.Open();
command.ExecuteNonQuery();
}
}
来自MSDN的参考资料
http://msdn.microsoft.com/en-us/library/jj635144.aspx