-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

接続部分をいくつかのクラスでラップするだけでもかまいませんが、さまざまなDBを操作するためのシンプルで柔軟なEntityFrameworkなどのORMツールを使用することをお勧めします。

于 2012-10-26T13:32:34.413 に答える
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 に答える
0

手始めに、接続文字列をapp.configのconnectionStringsの下に配置する必要があります。

接続を開くときは、何が起こっても必ず閉じてください。

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

   //db operations 
 }
 catch(Exception ex)
 {

 }
}
于 2012-10-26T13:33:08.507 に答える