C# 如何在文本框中显示选择存储过程结果?

C# 如何在文本框中显示选择存储过程结果?,c#,sql,ado.net,C#,Sql,Ado.net,我需要将存储过程中select语句的结果显示在文本框中,但我不知道如何执行。select语句不使用WHERE子句。存储过程将继续运行 CREATE PROCEDURE NewCustomer AS BEGIN SELECT MAX(ID) + 1 FROM Database END 这就是我尝试过的 protectedvoid btnew\u单击(对象发送方,事件参数e) { 清除(); int-num; 尝试 { 使用(SqlCommand=newsqlcommand(“NewCustom

我需要将存储过程中select语句的结果显示在文本框中,但我不知道如何执行。select语句不使用WHERE子句。存储过程将继续运行

CREATE PROCEDURE NewCustomer
AS
BEGIN
SELECT MAX(ID) + 1 FROM Database
END
这就是我尝试过的

protectedvoid btnew\u单击(对象发送方,事件参数e)
{
清除();
int-num;
尝试
{
使用(SqlCommand=newsqlcommand(“NewCustomer”))
{
command.Connection=conn;
command.CommandType=CommandType.storedProcess;
command.Parameters.Add(“@CustID”,SqlDbType.Int).Value=Int32.TryParse(txtCID.Text,out num);//如果需要,使用TryParse
conn.Open();
Text=(字符串)command.ExecuteScalar();
}
}
捕获(例外情况除外)
{
lblMessage.Text=ex.Message;
}

}
您没有执行给定的过程。该过程被命名为
yadayada
(您可以给出的最差名称),您正在执行过程
NewCustomer
,作为命令文本。两者必须相同。那么您在执行查询时使用了错误的语句

要执行目录操作(例如, 查询数据库结构或创建数据库对象,如 作为表),或在不使用 通过执行UPDATE、INSERT或DELETE语句创建数据集

但是您正在使用它执行select查询。在这里,您可以从表中选择一个值,因此ExecuteScalar将是您的最佳选择。您的代码如下:假设过程名为
GetNewCustomerID

 using (SqlCommand exeCommand = new SqlCommand("GetNewCustomerID"))
 {
     exeCommand.Connection = conn;
     exeCommand.CommandType = CommandType.StoredProcedure;
     exeCommand.Parameters.Add("@CustID",SqlDbType.Int).Value=Convert.ToInt32(txtCID.Text); // Use tryparse if needed
     conn.Open();
     txtCID.Text = (string)exeCommand.ExecuteScalar(); 
 }

这是一个显示您的场景的示例过程,还是您将其作为一个过程使用?错误出现在哪一行?我猜问题是您正在将
txtCID.Text
赋值给类型为
SqlDbType.Int
@Prdp的参数的
Value
属性,我将其用作示例,但我已对其进行了编辑,以显示我实际使用的内容。@OnkelToob那么我是否只需将txtCID转换为Int32?@是的,那至少是我的第一个猜测。但是我看到你已经编辑了你的问题,所以问题似乎转移到了其他方面……我只是用yadayada作为例子,我已经将这个例子更新为类似于你的例子,但现在我得到了一个不同的错误。