-1
private void button2_Click(object sender, EventArgs e)
{
    OleDbConnection cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;data source=c://library//lib.mdb");
    OleDbDataAdapter cmd = new OleDbDataAdapter("select * from entry where LTRIM(subjet)=?", cn);
    cmd.SelectCommand.Parameters.AddWithValue("1", comboBox1.Text);
    DataSet fg = new DataSet();
    cmd.Fill(fg);

    label1.Text = "No. of Rows:-    " + fg.Tables[0].Rows.Count.ToString();
    dataGridView1.DataSource = fg.Tables[0];
}
4

3 回答 3

1

如果这是一个简单的小型应用程序,那么这样的东西就足够了......

   private void button2_Click(object sender, EventArgs e) 
   {
        DataRetriever dr = new DataRetriever();
        DataSet fg = dr.GetData(comboBox.Text);
        label1.Text = "No. of Rows:-    " + fg.Tables[0].Rows.Count.ToString();
        dataGridView1.DataSource = fg.Tables[0];
    }

public class DataRetriever
{
    public void GetData(string text)
    {
        OleDbConnection cn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;data source=c://library//lib.mdb");

        OleDbDataAdapter cmd = new OleDbDataAdapter("select * from entry where LTRIM(subjet)=?", cn);
        cmd.SelectCommand.Parameters.AddWithValue("1", text);
        DataSet fg = new DataSet();
        cmd.Fill(fg);
   }
}

如果这是一个复杂的应用程序,您将需要研究多层应用程序设计。

于 2012-10-26T13:30:16.003 回答
1

您可以简单地用一些类包装连接部分,但我建议您使用 ORM 工具,例如Entity Framework,它可以简单灵活地处理不同的数据库。

于 2012-10-26T13:32:34.413 回答
0

对于初学者,您应该将连接字符串放在 app.config 中的connectionStrings下。

当您打开连接时,请确保无论发生什么都会关闭它:

using (OleDbConnection cn = new OleDbConnection(connectionString))
{
 try
 {
   cn.Open();

   //db operations 
 }
 catch(Exception ex)
 {

 }
}
于 2012-10-26T13:33:08.507 回答