C# 方法错误,使用mysql
我对函数进行了如下编码,我得到了一个错误,我试图通过这个返回字符串的方法从数据库中获取项目的详细信息C# 方法错误,使用mysql,c#,mysql,C#,Mysql,我对函数进行了如下编码,我得到了一个错误,我试图通过这个返回字符串的方法从数据库中获取项目的详细信息 public static string GetItemDetails(int i_id, string i_name) { MySqlConnection SQL_con = new MySqlConnection(VPconfig.sql_conns); string[] ItemData = null; i_name = i_
public static string GetItemDetails(int i_id, string i_name)
{
MySqlConnection SQL_con = new MySqlConnection(VPconfig.sql_conns);
string[] ItemData = null;
i_name = i_name == null ? string.Empty : i_name;
i_id = i_id == 0 ? 0 : i_id;
try
{
if(i_id != 0)
{
//get Item details by ID
string query = "SELECT * FROM items WHERE id="+i_id;
MySqlCommand xv = new MySqlCommand(query, SQL_con);
SQL_con.Open();
MySqlDataReader rdr = xv.ExecuteReader();
while(rdr.Read())
{
ItemData[0] = rdr.GetString("id");
ItemData[1] = rdr.GetString("iname");
ItemData[2] = rdr.GetString("iprice");
}
SQL_con.Close();
string master = ItemData[0] +"*"+ ItemData[1] +"*"+ ItemData[2];
return master;//Return format ID*NAME*PRICE
}
else if(i_name != string.Empty)
{
//get Item details by Name
string query = "SELECT * FROM items WHERE iname=" + i_name;
MySqlCommand xv = new MySqlCommand(query, SQL_con);
SQL_con.Open();
MySqlDataReader rdr = xv.ExecuteReader();
while (rdr.Read())
{
ItemData[0] = rdr.GetString("id");
ItemData[1] = rdr.GetString("iname");
ItemData[2] = rdr.GetString("iprice");
}
SQL_con.Close();
string master = ItemData[0] + "*" + ItemData[1] + "*" + ItemData[2];
return master;//Return format ID*NAME*PRICE
}
else
{
MessageBox.Show("No Items! found with ID/Name: " + i_id + i_name);
}
//if nothing
return null;
}
catch(Exception ex)
{
MessageBox.Show("Error Code: 17 "+ex.Message);
//if nothing
return null;
}
现在,如果我传递以下参数,则显示错误“错误代码:17对象引用未设置为对象的实例”
基本上是从渔获物
string xv = VPfunctions.GetItemDetails(5, string.Empty);
ta.Text = xv;
谢谢。引发异常,因为您用null声明了字符串数组,然后在DataReader循环中赋值 因此,这一行:
string[] ItemData = null;
应更改为以下内容:
string[] ItemData = new string[5];
你知道如何使用调试器吗?你能检查object ref的内部异常吗?无论我传递什么数据,错误都是一样的。非常感谢,问题已经解决了。