Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用VC++;从数据库检索数据的MFC对话_C#_C++_Mfc - Fatal编程技术网

C# 使用VC++;从数据库检索数据的MFC对话

C# 使用VC++;从数据库检索数据的MFC对话,c#,c++,mfc,C#,C++,Mfc,我编写了下面的代码来使用C#Windows窗体应用程序从数据库检索数据,但现在我想在VC++MFC对话控件中实现相同的数据检索思想:这是我在C#Windows窗体应用程序中实现的代码:请提供帮助 c.Open(); DateTime startDateTime = Convert.ToDateTime(textBox1.Text); DateTime endDateTime = Convert.ToDateTime(textBox2.Text); string query = "SELECT *

我编写了下面的代码来使用C#Windows窗体应用程序从数据库检索数据,但现在我想在VC++MFC对话控件中实现相同的数据检索思想:这是我在C#Windows窗体应用程序中实现的代码:请提供帮助

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支持带有
CDATA基的ODBC
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);
}

要创建数据库,请执行以下操作:

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");
要打开数据库,请执行以下操作:

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);
}

MFC支持ODBC与
CDATA基础
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);
}

要创建数据库,请执行以下操作:

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");
要打开数据库,请执行以下操作:

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);
}

你有什么问题?你的MFC代码在哪里?@JamesZ。我的问题是如何在MFC中执行同样的操作。我是一个全新的使用MFC的人。你怎么帮忙?你有什么问题?你的MFC代码在哪里?@JamesZ。我的问题是如何在MFC中执行同样的操作。我是一个全新的使用MFC的人。你帮了什么忙?非常感谢!我听了您的建议,但是程序在下面的代码行中指出了一个错误:Saying-identifier“m_listCtrl”是undefine int index=m_listCtrl.InsertItem(0,Enter_Exit_Time,0);它假定您在对话框类中有以下声明:
CListCtrl m\u listCtrl
这是关于
CListCtrl
和数据库的两个不同问题,您不能同时学习这两个问题。对于本例,请注释掉
m_listCtrl
,并使用
TRACE
MessageBox
测试数据库(请参见编辑)非常感谢!我听了您的建议,但是程序在下面的代码行中指出了一个错误:Saying-identifier“m_listCtrl”是undefine int index=m_listCtrl.InsertItem(0,Enter_Exit_Time,0);它假定您在对话框类中有以下声明:
CListCtrl m\u listCtrl
这是关于
CListCtrl
和数据库的两个不同问题,您不能同时学习这两个问题。对于本例,注释掉
m_listCtrl
,并使用
TRACE
MessageBox
测试数据库(请参见编辑)