#c# #sql #ms-access
#c# #sql #ms-access
Вопрос:
Его использование adapter
работает нормально, но при использовании adapter2
я получаю сообщение об ошибке.
Примечание: Код предназначен для form1
. Я использую два групповых поля и два представления данных.
`private OleDbConnection connection = new OleDbConnection();
DataTable table = new DataTable();
OleDbDataAdapter adapter = new OleDbDataAdapter();
DataSet set = new DataSet();
public Home()
{
InitializeComponent();
connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=G:DatabesSystem.accdb;Persist Security Info=False;";
adapter1();
adapter2();
}
private void adapter1()
{
try
{
OleDbDataAdapter adapter = new OleDbDataAdapter("select CID, Firstname, Middlename, Lastname, Address, Contact_Number, Email from Clients", connection);
adapter.Fill(set, "Clients");
table = set.Tables["Clients"];
dataGridView1.DataSource = table;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void adapter2()
{
try
{
OleDbDataAdapter adapter2 = new OleDbDataAdapter("select Transaction_Number, Client_Name, Unit_Name, Full_Price, Down_Payment, Monthly_Payment, Remaning_Balance from Transaction", connection);
adapter2.Fill(set, "Transaction");
table = set.Tables["Transaction"];
dataGridView2.DataSource = table;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}`
Комментарии:
1. Какая ошибка, пожалуйста, опубликуйте точный текст исключения?
2. Ошибка: системная ошибка в предложении FROM
3. У вас есть два оператора select . Какой из них выдает ошибку? Указаны ли в вашей таблице все столбцы?
4. @Sefa В описании сказано: второй, выберите из транзакции… Так что я предполагаю, что имя неверно.
5. @KielDred непосредственно перед вторым ИЗ него говорит: «Remaning_Balance » разве это не должно быть: «Remaining_Balance»?
Ответ №1:
Transaction
является зарезервированным ключевым словом в SQL. Попробуйте записать имя таблицы в скобках:
OleDbDataAdapter adapter2 = new OleDbDataAdapter("select Transaction_Number, Client_Name, Unit_Name, Full_Price, Down_Payment, Monthly_Payment, Remaning_Balance from [Transaction]", connection);
Или переименуйте имя вашей таблицы в другое.