C#,MySQL 对象引用未设置为对象错误的实例

C#, MySQL object reference not set to an instance of an object error

我正在开发一个 C# 项目,该项目从结构如下的文本文件中读取:教父、1972、戏剧、R、勇敢的心、1995、动作、R 等等。

本来打算将其输入到MySql数据库中,但是当我点击上传按钮时,我得到了"object reference not set to an instance of an object"。为什么会这样?

public partial class Form1 : Form
{
    MySqlConnection mcon = new MySqlConnection("datasource=localhost;port= 3306;username= root;password=");
    MySqlCommand mcd;
    MySqlDataReader mdr;
    string s;
    public Form1()
    {
        InitializeComponent();
    }

    private void buttonUpload_Click(object sender, EventArgs e)
    {
        string[] lines = File.ReadAllLines(@"C:\Users\Owner\Desktop\moviedata.txt");
        foreach (var line in lines)
        {
            var data = line.Split(new[] { ',' }, 4);
            string title = data[0].Trim();
            int year = int.Parse(data[1].Trim());
            string genre = data[2].Trim();
            string rating = data[3].Trim();
            recordMovie(title, year, genre, rating);
        }
    }
    private void recordMovie(string title, int year, string genre, string rating)
    {
        try
        {
        mcon.Open();
        mcd.CommandText = @"INSERT INTO movies (title, year, genre, rating) VALUES (@title, @year, @genre, @rating)";
        mcd.Parameters.AddWithValue("@title", title);
        mcd.Parameters.AddWithValue("@year", year);
        mcd.Parameters.AddWithValue("@genre", genre);
        mcd.Parameters.AddWithValue("@rating", rating);
        mcd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        finally
        {
            mcon.Close();
        }
    }
}

您不应将 MySqlCommand 指定为连接字符串。在这一行添加你的代码

mcd= new MySqlCommand("INSERT INTO movies (title, year, genre, rating) VALUES (@title, @year, @genre, @rating)", mcon);

更多详细信息参考此link

http://www.codeproject.com/Articles/43438/Connect-C-to-MySQL