使用ADO.NET从SQL获取单个值

Jam*_*son 4 c# sql-server ado.net webforms

我到目前为止:

// Update status history if the current work flow item has a status
int workflowID = Convert.ToInt32(statusCode.SelectedValue);
string status = "select status from jm_accountworkflowdetail where workid = @workID";

SqlConnection sqlConnection2 = new SqlConnection(sqlDevelopment.ConnectionString);
SqlCommand sqlComm2 = new SqlCommand(status, sqlConnection2);

sqlComm2.Parameters.AddWithValue("@workID", workflowID);
Run Code Online (Sandbox Code Playgroud)

查询将返回一个值('SOC','POS')或(''),表示它没有附加状态.

我需要做的是,如果状态不为空,则执行其他一些代码.但我不知道如何执行所有操作只是为了检查状态是否有值.

chr*_*dev 6

你需要使用 ExecuteScalar();

 string statusReturned = "";
 int workflowID = Convert.ToInt32(statusCode.SelectedValue);

 using (SqlConnection sqlConnection2 = new SqlConnection(sqlDevelopment.ConnectionString))
    {
        string status = "select status from jm_accountworkflowdetail where workid = @workID";
        SqlCommand sqlComm2 = new SqlCommand(status, sqlConnection2);
        sqlComm2.Parameters.AddWithValue("@workID", workflowID);
        try
        {
            sqlConnection2.Open();
            var returnValue = sqlComm2.ExecuteScalar()
                if returnValue != null then
                  statusReturned = returnValue.ToString();
        }
        catch (Exception ex)
        {
            //handle exception
        }
    }
    return statusReturned;
Run Code Online (Sandbox Code Playgroud)

要检查字符串值,您可以:

if (!String.IsNullOrEmpty(statusReturned)) {//perform code for SOC or POS}
Run Code Online (Sandbox Code Playgroud)