SQL Server存储过程返回值到字符串

时间:2018-12-14 15:27:14

标签: c# sql-server

我有一个存储过程,它将返回SCOPE_IDENTITY(),这是刚添加的行的ID。

我已经从我的C#应用​​程序中运行了该过程,并将正确的数据添加到了数据库中。我需要将此返回值存储为C〜中的字符串,以便在UI中填充文本框。

SqlConnection con = new SqlConnection(connectionString);
con.Open();

SqlDataAdapter aa = new SqlDataAdapter("sp_insert_order", con);
aa.SelectCommand.CommandType = CommandType.StoredProcedure;
aa.SelectCommand.Parameters.Add("@customer_id", SqlDbType.VarChar, (50)).Value = comboBox1.SelectedItem;

aa.SelectCommand.ExecuteNonQuery();

con.Close();

更改为

SqlConnection con = new SqlConnection(connectionString);
con.Open();

SqlDataAdapter aa = new SqlDataAdapter("sp_insert_order", con);
aa.SelectCommand.CommandType = CommandType.StoredProcedure;
aa.SelectCommand.Parameters.Add("@customer_id", SqlDbType.VarChar, (50)).Value = comboBox1.SelectedItem;

object oString = aa.SelectCommand.ExecuteScalar();

string myString = "";

if (oString != null)
{
    myString = oString.ToString();
    textBox1.Text = myString;
}

Textbox1仍为空白。 :(

1 个答案:

答案 0 :(得分:-1)

好的,我们假设您的SProc能够正确返回。尝试分配输出参数,如下所示:

SqlConnection cnx = new SqlConnection(WebConfigurationManager.ConnectionStrings["yourConnName"].ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnx;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.CommandText = "testSProc";
cmd.Parameters.AddWithValue("name", "test Name");
SqlParameter outputParam = cmd.Parameters.Add("outID", SqlDbType.Int);
outputParam.Direction = ParameterDirection.Output;

object oString;

cnx.Open();
cmd.ExecuteNonQuery();
cnx.Close();

TextBox1.Text = outputParam.Value.ToString();