c# - 列数据不能为空 c# mysql

标签 c# mysql

<分区>

我正在创建一个可以将音频插入 mysql 数据库的程序(我正在使用 mediumblob 数据类型)但是当我单击插入按钮时它显示错误“列数据不能为空”。这是我的代码:

private void buttonBrowse_Click(object sender, EventArgs e)
    {
        OpenFileDialog ofd = new OpenFileDialog();
        ofd.Filter = "WAV Audio Files|*.wav|M4A Audio Files|*.m4a";
        if (ofd.ShowDialog() == DialogResult.OK)
        {
            textBoxBrowse.Text = ofd.FileName;
        }
    }

    private void buttonSimpan_Click(object sender, EventArgs e)
    {
        OdbcConnection con = new OdbcConnection(Program.konek);
        OdbcCommand com = new OdbcCommand("insert into audio(data) values(@voice)", con);
        byte[] stream = File.ReadAllBytes(@textBoxBrowse.Text);
        MessageBox.Show(stream.ToString());
        if (stream.Length > 0)
        {
            com.Parameters.AddWithValue("@voice", stream);
            con.Open();
            int result = com.ExecuteNonQuery();
            if (result > 0)
                MessageBox.Show("insert done");
            con.Close();
        }
    }

有人对此有解决方案吗?

最佳答案

来自 MSDN OdbcParameter Class

When CommandType is set to Text, the .NET Framework Data Provider for ODBC does not support passing named parameters to an SQL statement or to a stored procedure called by an OdbcCommand. In either of these cases, use the question mark (?) placeholder. For example:

所以改变你的查询

OdbcCommand com = new OdbcCommand("insert into audio(data) values(?)", con);
byte[] stream = File.ReadAllBytes(@textBoxBrowse.Text);
    MessageBox.Show(stream.ToString());
    if (stream.Length > 0)
    {
        com.Parameters.AddWithValue("voice", stream);
        con.Open();
        int result = com.ExecuteNonQuery();
        if (result > 0)
            MessageBox.Show("insert done");
        con.Close();
    }
}

关于c# - 列数据不能为空 c# mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25933465/

相关文章:

c# - 使用左移将两个字节合并为 short

c# - 确保长时间运行的任务只触发一次,后续请求排队但队列中只有一个条目

C# 重复公共(public)代码的单元测试

php - 从数据库 TIMESTAMP PHP 输出日期和时间

mysql - 如何从 mysql 中的 LINESTRING 中提取 X 和 Y 坐标

c# - C# .Net : The underlying connection was closed: An unexpected error occurred on a send 的 TLS 1.2 错误

c# - datagrid-cell 获得焦点时自动编辑 WPF datagrid 内容

mysql - XAMPP MySQL 在启动时不工作

mysql - 尝试按计数获取 MySql 订单,但每个只获取 1 个

php - 尝试与房间匹配