c# WPF:从组合框中添加项目到Access DB



这几天我一直在想这个问题。我有一个DO/SEE/EXPECT的表单与文本框(这是有效的),但当我尝试添加一个3项的组合框,我总是得到一个OleDbException在cmd.ExecuteNonQuery();:

类型为"System.Data.OleDb"的未处理异常。在System.Data.dll中发生OleDbException

附加信息:标准表达式中数据类型不匹配。

我在这里做错了什么?

using System.Windows;
using System.Data.OleDb;
using System.Configuration;
namespace WpfApplication3
{
    public partial class Records : Window
    {
        public Records()
        {
            InitializeComponent();
        }
    
        private void button_Click(object sender, RoutedEventArgs e)
        {
            OleDbConnection con = new OleDbConnection();
            con.ConnectionString = ConfigurationManager.ConnectionStrings["Connection"].ToString();
            con.Open();
            OleDbCommand cmd = new OleDbCommand();
            cmd.CommandText = "insert into [tblInboxRecords](DO, SEE, EXPECT, Segment) Values (@do,@see,@ex,@sg)";
            cmd.Parameters.AddWithValue("@do", txtdo.Text);
            cmd.Parameters.AddWithValue("@see", txtsee.Text);
            cmd.Parameters.AddWithValue("@ex", txtexpect.Text);
            cmd.Parameters.AddWithValue("@sg", boxsegment.Text); // This is the combobox
            cmd.Connection = con;
            cmd.ExecuteNonQuery();
            {
                MessageBox.Show("Item Inserted");
            }
        }
        
    }
}

这是ComboBox的。xaml:

<ComboBox x:Name="boxsegment" HorizontalAlignment="Left" Height="20" Margin="72,85,0,0" VerticalAlignment="Top" Width="120">
    <ComboBoxItem Content="Type A (Operator)"/>
    <ComboBoxItem Content="Type B (Urgent)"/>
    <ComboBoxItem Content="Type C (Critical)"/>
</ComboBox>

当我在寻找一个解决方案时,我只能找到如何从你的DB到WPF使用项目,而不是其他方式。

找到了!

通过使用string SegmentBox = boxsegment.Text.ToString();

代替cmd.Parameters.AddWithValue("@sg", boxsegment.Text);

相关内容

  • 没有找到相关文章

最新更新