5

我是这么远:

// 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);

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

我需要做的是如果状态不为空然后执行一些其他代码。但是我不确定如何执行所有操作以检查状态是否具有值。

4

2 回答 2

8

你需要使用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;

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

if (!String.IsNullOrEmpty(statusReturned)) {//perform code for SOC or POS}
于 2013-08-06T17:28:25.537 回答
1

为了将来参考,如果您担心检查 null 并为 null 值做出一些决定,您可以使用IsNullT-SQL 中的函数。如果记录为空,它基本上会返回一个值。所以你上面的代码会变成这样:

string status = "select IsNull(status,'NoStatus') from jm_accountworkflowdetail where workid = @workID";

然后在你完成 SQL 之后,你将使用If Elseforstatus

If(Status == "NoStatus") {your code block} 

希望能帮助到你。

于 2013-08-06T17:55:52.583 回答