#c# #datagrid #ms-access-2010
Вопрос:
Я использую базу данных access. Я сделал соединение и адаптер данных глобальными переменными. При загрузке формы мое поле со списком заполняется всеми идентификаторами учащихся. Я пытаюсь заполнить свою таблицу данных всеми записями студента, чей идентификатор я выбрал в поле со списком. Тем не менее, это дает мне вышеупомянутую ошибку. Я относительно новичок и проверил кое-какую документацию, но не смог ее понять.
namespace P1
{
public partial class Form2 : Form
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =d:DDBS.mdb");
OleDbDataAdapter adap = new OleDbDataAdapter("Select * from Student", @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source =d:DDBS.mdb");
DataSet d1 = new DataSet("Student");
private void Form2_Load(object sender, EventArgs e)
{
adap.Fill(d1, "Student");
con.Open();
int x = d1.Tables["Student"].Rows.Count - 1;
for (int i = 0; i < x; i )
{
comboBox1.Items.Add(d1.Tables["Student"].Rows[i]["sid"]);
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
OleDbCommand ada = new OleDbCommand( "SELECT * FROM Student where sid= '" comboBox1.SelectedItem "'", con);
ada.ExecuteNonQuery();
dataGrid1.DataSource = ada;
MessageBox.Show("DONE");
}
}
}
Ответ №1:
Вы не можете напрямую использовать адаптер данных в качестве источника данных, но вам необходимо заполнить, т. е. Список/данные, которые можно использовать, а затем назначить его. Самым простым способом здесь было бы:
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable students = new DataTable();
da.Fill(students );
dataGrid1.DataSource = students ;
Комментарии:
1. О, так что сначала я должен был создать базу данных и заполнить ее адаптером. Спасибо