gpt4 book ai didi

c# - 从数据库获取不带空值的字符串值 C#

转载 作者:行者123 更新时间:2023-11-29 23:29:37 29 4
gpt4 key购买 nike

在我的应用程序中,我想将两个文本框自动完成方法与 mysql 数据库列链接起来。第一列有 3 个值,第二列有 7 个值。

像这样

+---------+---------------+--------------+
+appsetid + category + subcategory +
+---------+---------------+--------------+
+ 1 + property pres + Bankruptcy +
+ 2 + attorney + app +
+ 3 + valuation + unknown +
+ 4 + -null- + mitigate +
+ 5 + -null- + property re +
+ 6 + -null- + close +
+ 7 + -null- + unk12 +
+---------+---------------+--------------+

我想将此列值作为我的文本框自动完成值。但是在我调用下面的方法后,第一个文本框自动完成获取 3 个值,但第二个文本框自动完成仅完成第 3 个值。我尝试使用 isnullorempty 填充文本框,但它不起作用

这是我用来填充文本框自动完成的代码。

两个文本框自动完成模式均设置为 suggestappend,自动完成源设置为 customsource

private void maintxtautocomplete()
{
AutoCompleteStringCollection call = new AutoCompleteStringCollection();
AutoCompleteStringCollection call2 = new AutoCompleteStringCollection();

string constring = string.Format("Server=127.0.0.1;Database=claimspro;Uid=root;Pwd=***************;");
string Query1 = "select * from appsettings ;";
MySqlConnection conwaqDatabase2 = new MySqlConnection(constring);
MySqlCommand cmdwaqDatabase2 = new MySqlCommand(Query1, conwaqDatabase2);
MySqlDataReader myreader;

try
{
conwaqDatabase2.Open();
myreader = cmdwaqDatabase2.ExecuteReader();

while (myreader.Read())
{
string sName2 = myreader.GetString("subcategory");
if (!string.IsNullOrEmpty(sName2))
{
call.Add(sName2);
};

string sName1 = myreader.GetString("category");
if (!string.IsNullOrEmpty(sName1))
{
call2.Add(sName1);
};
}
}

catch
{
}

categorytxtbox.AutoCompleteCustomSource = call2;
subcategorytxtbox.AutoCompleteCustomSource = call;
conwaqDatabase2.Close();
}

最佳答案

我发现使用扩展方法对此很有用:

    public static class DataReaderExtensions
{

public static string GetStringOrNull(this IDataReader dataReader, string columnName)
{
try
{
object value = dataReader[columnName];
return (value == null || value == DBNull.Value) ? null : (string)value;
}
catch (Exception exception)
{
throw new ApplicationException(String.Format("Invalid 'String' data type for column '{0}'", columnName), exception);
}
}

...
}

这将允许您执行以下操作:

using Extensions; // your extension namespace

string sName2 = myreader.GetStringOrNull("subcategory");
if (!string.IsNullOrEmpty(sName2))
{
...

关于c# - 从数据库获取不带空值的字符串值 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26660682/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com