并非所有代码路径都返回值c# - 私有字符串和for循环

时间:2017-02-20 11:39:11

标签: c#

你好,在你把它标记为副本之前,我已经看过并试过别人,没有运气。我一直收到字符串getBrand的错误说:

  

并非所有代码路径都返回一个值。

private string getBrand(string id)
{
    con.Open();
    SqlCommand cmd = con.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "Select brand from tbl_products where productId = '" + id + "'";
    cmd.ExecuteNonQuery();
    con.Close();
    DataTable dt = new DataTable();
    SqlDataAdapter sda = new SqlDataAdapter(cmd);
    sda.Fill(dt);
    getBrand = dt.Rows[0][0].ToString();
}    

下面是我收到字符串' id'传递给getBrand String希望运行查询。

for (int i = 0; i < salesGridView.Rows.Count; i++)
{
    table2.AddCell(new Phrase(salesGridView[1, i].Value.ToString(), normFont));
    string id = salesGridView[0, i].Value.ToString();
    table2.AddCell(new Phrase(getBrand(id), normFont));
}

2 个答案:

答案 0 :(得分:4)

您已将dt.Rows[0][0].ToString();存储到方法的名称中。您需要从方法中返回以下行:

return dt.Rows[0][0].ToString();

或者将其存储在另一个变量的名称中,然后返回该变量。像这样:

var temp = dt.Rows[0][0].ToString();
return temp;

答案 1 :(得分:0)

你应该这样做:

private string getBrand(string id)
    {
        con.Open();
        SqlCommand cmd = con.CreateCommand();
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "Select brand from tbl_products where productId = '" + id + "'";
        cmd.ExecuteNonQuery();
        con.Close();
        DataTable dt = new DataTable();
        SqlDataAdapter sda = new SqlDataAdapter(cmd);
        sda.Fill(dt);

        return dt.Rows[0][0].ToString();
    }