C# 在C上执行查询时出错#

C# 在C上执行查询时出错#,c#,mysql,sql,C#,Mysql,Sql,我有个问题。我想用这个C在我的MySQL数据库中存储数据# 但它显示错误System.NullReferenceException:对象引用未设置为对象的实例 第40行出现错误: cmd.Parameters.AddWithValue("@genre",kategori(comboBoxGenre.SelectedValue.ToString()).ToString()); 如何解决这个问题?将您的代码折射到此中,使用使用语句 string connString = connection

我有个问题。我想用这个C在我的MySQL数据库中存储数据#

但它显示错误System.NullReferenceException:对象引用未设置为对象的实例

第40行出现错误:

   cmd.Parameters.AddWithValue("@genre",kategori(comboBoxGenre.SelectedValue.ToString()).ToString());

如何解决这个问题?

将您的代码折射到此中,使用
使用
语句

string connString = connectionmysqlconnectionbuilder();
using (MySqlConnection conn = new MySqlConnection(connString)
{
    using (MySqlCommand cmd = new MySqlCommand())
    {
        cmd.Connection = conn;
        cmd.CommandText = @"INSERT INTO film(judul,genre,asal,kondisi) 
                             VALUES(@judul,@genre,@asal,@kondisi)";
        cmd.Parameters.AddWithValue("@judul", textBoxJudul.Text);
        cmd.Parameters.AddWithValue("@genre", kategori(comboBoxGenre.Text).ToString());
        cmd.Parameters.AddWithValue("@asal", asal(comboBoxAsal.Text).ToString());
        cmd.Parameters.AddWithValue("@kondisi", checkedStatus());
        try
        {
            comm.Open();
            cmd.ExecuteNonQuery();
        }
        catch(MySqlException ex)
        (
            Console.WriteLine(ex.ToString());
        )
    }
}
你也可以使用

comboBoxGenre.Text instead of comboBoxGenre.SelectedValue

将您的代码折射到此中,使用
using
语句

string connString = connectionmysqlconnectionbuilder();
using (MySqlConnection conn = new MySqlConnection(connString)
{
    using (MySqlCommand cmd = new MySqlCommand())
    {
        cmd.Connection = conn;
        cmd.CommandText = @"INSERT INTO film(judul,genre,asal,kondisi) 
                             VALUES(@judul,@genre,@asal,@kondisi)";
        cmd.Parameters.AddWithValue("@judul", textBoxJudul.Text);
        cmd.Parameters.AddWithValue("@genre", kategori(comboBoxGenre.Text).ToString());
        cmd.Parameters.AddWithValue("@asal", asal(comboBoxAsal.Text).ToString());
        cmd.Parameters.AddWithValue("@kondisi", checkedStatus());
        try
        {
            comm.Open();
            cmd.ExecuteNonQuery();
        }
        catch(MySqlException ex)
        (
            Console.WriteLine(ex.ToString());
        )
    }
}
你也可以使用

comboBoxGenre.Text instead of comboBoxGenre.SelectedValue

可能有两个原因:

1.ComboboxGene.SelectedValue将为空

2.kategori()将返回null

您可以使用
Convert.ToString()
而不是
variable.ToString()

因此,对于其他行,也可以使用此

cmd.Parameters.AddWithValue("@genre", Convert.ToString(kategori(Convert.ToString(comboBoxGenre.SelectedValue))));

可能有两个原因:

1.ComboboxGene.SelectedValue将为空

2.kategori()将返回null

您可以使用
Convert.ToString()
而不是
variable.ToString()

因此,对于其他行,也可以使用此

cmd.Parameters.AddWithValue("@genre", Convert.ToString(kategori(Convert.ToString(comboBoxGenre.SelectedValue))));


在哪一行抛出此异常?@MadSkunk第40行。关于该方法的脚本如下:Superb:)代码中的行号40在哪里?在您的代码@RandyTanh中添加行号40。我们如何知道这是第40行?。@不幸的是这一行:cmd.Parameters.AddWithValue(“@genre”,kategori(comboBoxGenre.SelectedValue.ToString()).ToString());在哪一行抛出此异常?@MadSkunk第40行。关于该方法的脚本如下:Superb:)代码中的行号40在哪里?在您的代码@RandyTanh中添加行号40。我们如何知道这是第40行?。@不幸的是这一行:cmd.Parameters.AddWithValue(“@genre”,kategori(comboBoxGenre.SelectedValue.ToString()).ToString());我只是好奇为什么我需要折射代码?我还有另一个类由我的mysqlconnectionstringbuilder组成。我有兴趣了解下一票
:D
,是因为
AddWithValue
AddWithValue
执行数据类型的隐式转换。如果我是你,请使用
Add
,请看这里好的,谢谢你的回复@JW。如果我想让ComboBox列表返回到clear字段,我只需要放置ComboBox.Text=”“,或者有合适的方法?谢谢如果您使用的是通用组合框,并且
DropDownStyle
的值设置为
DropDownList
,那么您需要先添加空值,这样您就可以使用
Combobox.Text=”“
设置值,但是如果没有,那么您可以使用
Combobox.Text=”“
自由设置它。我只是好奇为什么我需要折射代码?我还有另一个类由我的mysqlconnectionstringbuilder组成。我有兴趣了解下一票
:D
,是因为
AddWithValue
AddWithValue
执行数据类型的隐式转换。如果我是你,请使用
Add
,请看这里好的,谢谢你的回复@JW。如果我想让ComboBox列表返回到clear字段,我只需要放置ComboBox.Text=”“,或者有合适的方法?谢谢如果您使用的是通用组合框,并且
DropDownStyle
的值设置为
DropDownList
,您需要先添加空值,这样您就可以使用
Combobox.Text=“
设置该值,但如果没有,则可以使用
Combobox.Text=“”自由设置该值
我想说,更好的做法是不要使用Convert.ToString()吞并null大小写,而是通过允许null类别或检查它并采取适当的操作(例如可能引发异常)来处理它。谢谢您的回复。我刚刚编辑了代码并更改了获取文本的combobox方法。我想说的是,最好不要使用Convert.ToString()接受空大小写,而是通过允许空类别或检查它并采取适当的操作来处理它,例如可能引发异常。谢谢您的回复。我刚刚编辑了代码并更改了获取文本的组合框方法。