gpt4 book ai didi

c# - 如果返回值为 null 程序崩溃

转载 作者:行者123 更新时间:2023-11-29 02:08:21 25 4
gpt4 key购买 nike

我正在尝试从 mysql(c#,mono) 中检索一些数据,问题是如果返回值为 null 程序崩溃,我知道它必须对返回的 null 值做一些事情,因为如果我想检索它工作的数据库中的内容,任何人都可以帮助我吗?

代码:

MySqlConnection dbcon;
dbcon = new MySqlConnection(conString);
try
{
dbcon.Open();
}
catch (Exception)
{
Console.WriteLine("MySQL Database Connection Problem !!!");

}

//reading data from mysql
MySqlCommand dbcmd = new MySqlCommand(sql, dbcon);

MySqlDataReader reader = dbcmd.ExecuteReader();

while(reader.Read()){

txtFirstname.Text = reader["first_name"].ToString();
txtLastname.Text = reader["last_name"].ToString();
imgUser.File = path+reader["photo"].ToString();
expDate = reader["expiration_datetime"].ToString();
usrName = reader["username"].ToString();

}

dbcon.Close();

最佳答案

您正在对 MySQL 返回的对象调用 ToString 方法。

如果 MySQL 返回 null,您将在 null 对象上调用 ToString 方法,给出一个 NullReferenceException.

假设 SQL 实际上返回字符串(不是数字或日期),您可以简单地转换为字符串,如下所示:(string)reader["username"]
如果 SQL 返回非字符串数据类型,您可以调用 Convert.ToString(reader["username"])

如果 MySQL 返回 null,这两者都会导致 null

如果您希望 MySQL null 的结果不是 null,请使用 null 合并运算符,如下所示:Convert.ToString(reader["用户名”]) ?? “它是空的!”

关于c# - 如果返回值为 null 程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2053497/

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