winforms 在C#中,如何将ComboBox的文本值设置为函数的输出?

cpjpxq1n  于 2023-01-17  发布在  C#
关注(0)|答案(2)|浏览(148)

我似乎不能让组合框文本值显示函数的输出。它的行为非常奇怪。
所有这些工作:

item.Text = "test";
string testStr = "test";
item.Text = testStr;
string testStr = "test" + function();
item.Text = testStr;
string testStr = " " + function();
item.Text = testStr;

这些不起作用

item.Text = function();
testStr = "" + function();
item.Text = testStr;

我的头发都要掉下来了。请帮帮我。
我在上面列出了我尝试过的方法。值得注意的是,这个函数在其他任何情况下都能正常工作,它输出的字符串也没有问题。我只需要这样做就可以了:
item. text =函数();
该函数为:

public static string getStringFromDB(string sqlStr)
{
    string result = null;

    SqlConnection conn;
    conn = openCon();

    SqlCommand cmd = new SqlCommand(sqlStr, conn);
    try
    {
        result = (string)cmd.ExecuteScalar();
    }
    catch (Exception ex)
    {
        result = getIntFromDB(sqlStr).ToString();

    }

    closeConn(conn);
    return result;
}

编辑:我现在发现下面的消息框显示正常,但是组合框没有显示任何数据。

item.Text = getStringFromDB("SELECT " + dbStrings[2] + " FROM " + dbStrings[0] + " WHERE " + dbStrings[1] + " = " + getIntFromDB("SELECT " + item.Name + " FROM MASTER WHERE MASTER_ID = " + recordID + ";"));
MessageBox.Show(item.Text);

编辑:今天早上,代码在没有做任何修改后工作正常。我不知道发生了什么。

3j86kqsm

3j86kqsm1#

我关闭这个,因为代码是今天早上的工作。我没有做任何更改的代码,因为张贴这一点。

mctunoxg

mctunoxg2#

问题似乎出在函数getStringFromDB(string sqlStr)上,该函数似乎在所有其他情况下都能正常工作,但当您将其返回值赋给组合框项的Text属性时,该函数就不工作了。
以下是您可以尝试的几种方法:
验证函数的返回值:确保函数返回的字符串值符合预期。您可以通过添加临时代码行来检查此情况,以便在将函数的返回值分配给组合框项的Text属性之前将其打印到控制台。
检查空值:确保函数没有返回空值。如果返回空值,则需要在代码中处理这种情况。
检查组合框项的Text属性:确保组合框项的Text属性可访问并可设置。
检查是否有任何异常:确保在将函数的返回值赋给组合框项的Text属性时没有引发异常。如果有异常,请确保适当地处理它们。
如果该函数在其他情况下工作正常,但在此处不工作,则可以尝试调用该函数并将结果存储在变量中,然后将该变量赋给组合框的Text属性。

相关问题