将数据发送到Access数据库时出错

布克

当我尝试将代码发送到Access数据库时出现此异常:

System.Data.OleDb.OleDbException(0x80040E07):选择条件表达式中的数据类型不匹配

在System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS
dbParams,Object&executeResult)
在System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(System.Data.OleDb.OleDbCommand.ExecuteCommandText(Data&Execute
。) OleDb.OleDbCommand.ExecuteCommand(的CommandBehavior行为,对象&的ExecuteReuslt)
在System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(的CommandBehavior行为,字符串方法)
在System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
在KPIZ.Form2.btn_save_Click(对象发件人,EventArgs e),位于C:\ Users \ booku \ source \ repos \ KPIZ \ KPIZ \ Form2.cs:第110行

我的代码:

private void btn_save_Click(object sender, EventArgs e)
{
        try
        {
            byte[] imageBt = null;
            FileStream fstream = new FileStream(this.textBox2.Text, FileMode.Open, FileAccess.Read);
            BinaryReader br = new BinaryReader(fstream);
            imageBt = br.ReadBytes((int)fstream.Length);

            connection.Open();

            OleDbCommand command = new OleDbCommand();
            command.Connection = connection;
            command.CommandText = @"INSERT INTO [SportInfo]([ID],[FirstName],[LastName],[DOB],[Sport],[DIW],[Image])" + "VALUES(@id, @Fn, @Ln, @Date, @Sports, @days ,@IMG)";
            
            command.Parameters.Add(new OleDbParameter("@Fn", Convert.ToString(txt_fname.Text)));
            command.Parameters.Add(new OleDbParameter("@Ln", Convert.ToString(txt_lname.Text)));
            command.Parameters.Add(new OleDbParameter("@Date", Convert.ToString(mtxt_dob.Text)));
            command.Parameters.Add(new OleDbParameter("@Sports", Convert.ToString(txt_sport.Text)));
            command.Parameters.Add(new OleDbParameter("@days", Convert.ToInt32(nmc_diw.Text)));
            command.Parameters.Add(new OleDbParameter("@id", Convert.ToInt32(txt_id.Text)));
            command.Parameters.Add(new OleDbParameter("@IMG", imageBt));

            command.ExecuteNonQuery();

            MessageBox.Show("Data Saved");
            connection.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show("Unlucky  " + ex);
            connection.Close();
        }

        try
        {
            connection.Open();
            OleDbCommand command = new OleDbCommand();
            command.Connection = connection;
            string query = "select ID,LastName,FirstName,DOB,Sport,DIW, from SportInfo ";
            command.CommandText = query;

            OleDbDataAdapter da = new OleDbDataAdapter(command);
            dt = new DataTable();
            da.Fill(dt);
            dataGridView1.DataSource = dt;

            connection.Close();
        }
}
埃里克·A

OLEDB参数始终处于位置。这意味着查询中参数的顺序需要与添加到代码中的参数顺序相匹配。

另外,您需要将date参数添加为日期,而不是字符串。

调整参数顺序以匹配:

        command.Parameters.Add(new OleDbParameter("@id", Convert.ToInt32(txt_id.Text)));
        command.Parameters.Add(new OleDbParameter("@Fn", Convert.ToString(txt_fname.Text)));
        command.Parameters.Add(new OleDbParameter("@Ln", Convert.ToString(txt_lname.Text)));
        command.Parameters.Add(new OleDbParameter("@Date", DateTime.Parse(mtxt_dob.Text)));
        command.Parameters.Add(new OleDbParameter("@Sports", Convert.ToString(txt_sport.Text)));
        command.Parameters.Add(new OleDbParameter("@days", Convert.ToInt32(nmc_diw.Text)));
        command.Parameters.Add(new OleDbParameter("@IMG", imageBt));

如果顺序不匹配,则会出现很多错误,因为现在您正在尝试在日期列或整数列中插入文本字段。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将XML数据发送到MySQL数据库

将textarea数据发送到数据库的麻烦

将json数据发送到mysql数据库?

将数据从表单发送到数据库

在使用jQuery将数据发送到数据库时,如何使按钮处于活动状态?

尝试将数据发送到数据库时出现Scrapy ItemLoader错误

发送到数据库时的Android GPS延迟

将数据从Angularjs发送到php时出错

将下拉列表的信息发送到数据库

使用Cucumber将输出发送到数据库时,如何测试组件?

选中多个复选框时,将值发送到数据库

禁用分页器时如何防止将行计数发送到数据库

AngularJS在离开输入字段时将值发送到数据库

使用意图将字符串发送到数据库时遇到麻烦

在Android中的Firebase数据库中更改数据时将数据发送到App

当您通过“res.render”将数据发送到 HTML 模板时,使用 Ajax 获取 Mongodb 数据库

使用EtherCard.h库将arduino数据发送到我的数据库

要在设备脱机时将数据存储在本地数据库中,并在在线时从数据库获取并发送到服务器

表单不将数据发送到数据库

以大小受限的块将数据发送到数据库

将数据从Android应用发送到MySQL数据库

使用javaservlet将数据从数据库发送到jsp

如何通过HTTP请求将数据发送到Firestore数据库

如何将数据从Google Pub / Sub发送到Firebase实时数据库

如何使用Jquery和Ajax将Json数据发送到数据库中?

无法将数据从表单发送到Firestore数据库

Bootstrap表单将数据错误发送到MongoDB数据库

使用NodeMCU ESP8266将Arduino数据发送到mySQL数据库

使用AJAX将数据发送到数据库失败