簡體   English   中英

使用VC ++ MFC對話從數據庫檢索數據

[英]Using VC++ MFC dialogue to retrieve data from a database

我編寫了以下代碼,以使用C#Windows Form Application從數據庫中檢索數據,但現在我想在VC ++ MFC對話控件中實現相同的數據檢索思想:這是我在C#Windows Form Application中實現的代碼:救命

c.Open();
DateTime startDateTime = Convert.ToDateTime(textBox1.Text);
DateTime endDateTime = Convert.ToDateTime(textBox2.Text);
string query = "SELECT * FROM People_Tracking WHERE Enter_Exit_Time BETWEEN @startDateTime AND @endDateTime ;";
SqlCommand cmd = new SqlCommand(query, c);
cmd.Parameters.Add("@startDateTime", SqlDbType.DateTime).Value = startDateTime;
cmd.Parameters.Add("@endDateTime", SqlDbType.DateTime).Value = endDateTime;
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable t = new DataTable();
adapter.Fill(t);
dataGridView1.DataSource = t;

這是我要如何在VC ++ MFC對話控件中顯示它的圖像: 在此處輸入圖片說明

MFC通過CDatabaseCRecordset支持ODBC

開放式數據庫連接(ODBC)

要創建數據庫:

SQLConfigDataSource(NULL, ODBC_ADD_DSN,
    L"MICROSOFT ACCESS DRIVER (*.mdb)",
    L"DSN=DataBaseName\0CREATE_DB=C:\\PATH\\DB.mdb\0\0");
//in this example "c:\\Path" must exist

要打開數據庫:

CDatabase db;
db.Open(NULL, FALSE, FALSE,
    L"ODBC;DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)};DBQ=c:\\PATH\\DB.mdb");

SQL命令示例:

db.ExecuteSQL(L"CREATE TABLE MY_TABLE (ID TEXT(4), NAME TEXT(10))");
db.ExecuteSQL(L"INSERT INTO MY_TABLE (ID, NAME) values('1000', 'MyName')");

使用CRecordset讀取數據

try
{
    CDatabase db;
    db.Open(NULL, FALSE, FALSE,
        L"ODBC;DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)};DBQ=c:\\PATH\\DB.mdb");

    CRecordset records(&db);
    records.Open(CRecordset::forwardOnly, L"SELECT * FROM MY_TABLE", CRecordset::readOnly);

    while (!records.IsEOF())
    {
        CString id, name;
        records.GetFieldValue(L"ID", id);
        records.GetFieldValue(L"NAME", name);

        //int index = m_listCtrl.InsertItem(0, id, 0);
        //m_listCtrl.SetItemText(index, 1, name);
        TRACE(L"ID = %s, Name = %s\n", id, name);

        records.MoveNext();
    }
    db.Close();
}
catch (CDBException *e)
{
    MessageBox(L"DB error: " + e->m_strError);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM