我收到一个错误:附加信息:对象引用未设置为对象的实例

时间:2015-06-16 13:32:15

标签: c# mysql textbox

我已经搜索过这样的其他错误,但我没有找到任何解决方案。

public string[] vector;

//...

string comanda = "select * from chat";
MySqlConnection con = new MySqlConnection(conexiune);
MySqlCommand cmd = new MySqlCommand(comanda, con);
MySqlDataReader dr;
int i = 1;
con.Open();
dr = cmd.ExecuteReader();
while (dr.Read())
{
    if (dr[1].ToString().Length > 1)
    {
        if (i == 1)
        {
            textBox1.Text = dr[0].ToString() + ": " + dr[1].ToString();
        }
        else
        {
            textBox1.Text = textBox1.Text + "\r\n";
            textBox1.Text = textBox1.Text + dr[0].ToString() + ": " + dr[1].ToString();
        }
    }
    vector[i] = dr[1].ToString();
    i++; // Exception: An unhandled exception of type 'System.NullReferenceException' occured in Chat_1.exe   
}
con.Close();
timer1.Start();

2 个答案:

答案 0 :(得分:0)

请初始化你的矢量。没有使用new with array,它为null。 将代码更改为public string[] vector = new String[3]。请用您想要的尺寸替换3。

答案 1 :(得分:0)

您没有初始化阵列。尝试在某处初始化它,例如构造函数中的方法或更好:

vector = new string[number of how much elements you need];

虽然列表的默认长度为4,并且能够自行调整大小,但是数组要么被赋予元素的数量,要么带有预定义的元素。

var vector = new string[] { "El 1", "El 2"...};