Я пытаюсь понять это в течение последних нескольких дней. У меня есть форма с DO/SEE/EXPECT в форме с TextBoxes (это работает), но когда я пытаюсь добавить ComboBox с тремя элементами, я всегда получаю OleDbException на cmd.ExecuteNonQuery();:C# WPF: Добавить элемент из ComboBox для доступа к DB
Необработанное исключение типа «System.Data.OleDb.OleDbException» произошло в System.Data.dll
Дополнительная информация: Несоответствие типов данных в выражении критериев.
Что я здесь делаю неправильно?
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");
}
}
}
}
И это .xaml для ComboBox:
<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>
Когда я искал решение, я мог бы найти только то, как использовать элементы из БД в WPF, но не другой путь.
Что тип данных столбца 'сегмент'? Похоже, что он несовместим с 'string', поэтому вам нужно преобразовать' boxsegment.Text' в совместимый тип, если вы хотите использовать его в качестве параметра запроса. –
Я предполагаю, что вы говорите о столбце в Access? Я попробовал «Short Text», «Long Text» и добавил список значений. – Giuliano