菜鸟求助----如何连接Mysql数据库啊! 我看了一些连接数据库的文章,上面都是用AppWizard在建立工程的时候就加入了关于数据库的一些功能,而我的工程以前不知道是需要用到数据库的,所以只有一些对话框,我想在窗体的一个按钮下面就完成对数据库的连接和读写,ODBC数据源我已经配好了,名字就叫做"good",用户名"A",密码"123",数据库里面我需要的表名是:TOM,哪位好心哥哥给点方法啊?我很郁闷啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CDatabase dataBase; CRecordset rSet; CString strT; strT.Format("DSN=%s;UID=%s;PWD=%s", g_strDSN, g_strUSE, g_strPAS); if(dataBase.OpenEx(strT, CDatabase::noOdbcDialog) == FALSE) { return; } // dataBase.OpenEx("DSN=wlms;UID=root;PWD="); rSet.m_pDatabase = &dataBase; // クンラ飆Dイ鰈メカヤモヲヨユカヒ // circuit2group(サリツキキヨラ魍・ア惞コ // Field Type Comments Input Method // id int(6) unsigned ラヤカッノ嵭ノid」ャラヤヤモイサミ靨ェツシネ・ャマオヘウラヤカッノ嵭ノ // tid int(6) unsigned terminal id モテサァヘィケム。ヤ嵭ノ // gid int(6) unsigned group id モテサァヘィケム。ヤ嵭ノ // cid int(6) unsigned circuit id モテサァヘィケム。ヤ嵭ノ CString strSQL = "SELECT * FROM circuit2group WHERE `gid` = '%s' AND `tid` = '%s'"; strT.Format(strSQL, strGID, strTID); rSet.Open(AFX_DB_USE_DEFAULT_TYPE, strT); int rCount = 0; while(rSet.IsEOF() == FALSE) { rCount++; CString strtid; CString strcid; rSet.GetFieldValue("tid", strtid); rSet.GetFieldValue("cid", strcid); /* contactor(スモエ・ニナマ「)ア惞コ id int(4) unsigned スモエ・ニd」ャラヤヤモ」ャカヤモヲモレcirtuitア櫢ミオトcid tid int(4) unsigned ヒユカヒア犲ナ」ャカヤモヲモレterminalア櫢ミオトid イサミ靨ェツシネ・ャ lid int(2) unsigned ヒユカヒトレイソスモエ・ニ犲ナ(1,2,3,...) イサミ靨ェツシネ・ャ name varchar(2) スモエ・ニ﨤ニモテサァハヨカッツシネ・ type int(2) unsigned タ獎ヘ(ネォメケオニ。「ー・ケオニ。「ウ、テニ。「ハホオニ) モテサァヘィケComboBoxム。ヤ・ desc text スモエ・ニ靆ナマ「モテサァハヨカッツシネ・ status int(1) unsigned スモエ・ニエフャ(ニテ。「ホエモテ) モテサァヘィケComboBoxム。ヤ・ */ /* circuit(サリツキミナマ「)ア惞コ id int(8) unsigned サリツキid」ャラヤヤモ」ャカヤモヲモレphaseア櫢ミオトcidラヨカホ cid int(4) unsigned スモエ・ニ犲ナ」ャカヤモヲモレcontactorア櫢ミオトid イサミ靨ェツシネ・ャヤレミツヤモエ・ name varchar(20) サリツキテ﨤ニモテサァハヨカッツシネ・ status int(1) unsigned サリツキラエフャモテサァヘィケComboBoxム。ヤ・ rsid int(4) unsigned ヒキカホア犲ナモテサァヘィケComboBoxム。ヤ・ */ CRecordset r1Set; r1Set.m_pDatabase = &dataBase; CString str1SQL; str1SQL.Format("SELECT * FROM contactor WHERE id = '%s' AND id = '%s'", strcid, strCOID); r1Set.Open(AFX_DB_USE_DEFAULT_TYPE, str1SQL); int r1Count = 0; while(r1Set.IsEOF() == FALSE) { r1Count++; CString str1id;// id int(4) unsigned スモエ・ニd CString str1tid;// tid int(4) unsigned ヒユカヒア犲ナ CString str1lid;// lid int(2) unsigned ヒユカヒトレイソスモエ・ニ犲ナ CString str1name;// name varchar(2) スモエ・ニ﨤ニ r1Set.GetFieldValue("id", str1id); r1Set.GetFieldValue("tid", str1tid); r1Set.GetFieldValue("name", str1name); CRecordset r2Set; r2Set.m_pDatabase = &dataBase; CString str2SQL; str2SQL.Format("SELECT * FROM circuit WHERE id = '%s'", str1id); r2Set.Open(AFX_DB_USE_DEFAULT_TYPE, str2SQL); int r2Count = 0; while(r2Set.IsEOF() == FALSE) { r2Count++; CString str2id;// id int(4) unsigned スモエ・ニd CString str2name;// name varchar(50) ヨユカヒテ﨤ニ r2Set.GetFieldValue("id", str2id); r2Set.GetFieldValue("name", str2name); r2Set.MoveNext(); strIDList.AddTail(str2id); strNameList.AddTail(str2name); } r2Set.Close(); r1Set.MoveNext(); } r1Set.Close(); rSet.MoveNext(); } if(rCount < 1) { //AfxMessageBox("シ・IRCUIT2GROUPア桄アテサモミハセンアサシ・ス」。"); //m_bErrorFlag = FALSE; } rSet.Close(); dataBase.Close(); 重发一下,刚才有乱码 CDatabase dataBase; CRecordset rSet; CString strT; strT.Format("DSN=%s;UID=%s;PWD=%s", g_strDSN, g_strUSE, g_strPAS); if(dataBase.OpenEx(strT, CDatabase::noOdbcDialog) == FALSE) { return; } // dataBase.OpenEx("DSN=wlms;UID=root;PWD="); rSet.m_pDatabase = &dataBase; CString strSQL = "SELECT * FROM circuit2group WHERE `gid` = '%s' AND `tid` = '%s'"; strT.Format(strSQL, strGID, strTID); rSet.Open(AFX_DB_USE_DEFAULT_TYPE, strT); int rCount = 0; while(rSet.IsEOF() == FALSE) { rCount++; CString strtid; CString strcid; rSet.GetFieldValue("tid", strtid); rSet.GetFieldValue("cid", strcid); CRecordset r1Set; r1Set.m_pDatabase = &dataBase; CString str1SQL; str1SQL.Format("SELECT * FROM contactor WHERE id = '%s' AND id = '%s'", strcid, strCOID); r1Set.Open(AFX_DB_USE_DEFAULT_TYPE, str1SQL); int r1Count = 0; while(r1Set.IsEOF() == FALSE) { r1Count++; CString str1id;// id int(4) unsigned CString str1tid;// tid int(4) unsigned CString str1lid;// lid int(2) unsigned CString str1name;// name varchar(2) r1Set.GetFieldValue("id", str1id); r1Set.GetFieldValue("tid", str1tid); r1Set.GetFieldValue("name", str1name); CRecordset r2Set; r2Set.m_pDatabase = &dataBase; CString str2SQL; str2SQL.Format("SELECT * FROM circuit WHERE id = '%s'", str1id); r2Set.Open(AFX_DB_USE_DEFAULT_TYPE, str2SQL); int r2Count = 0; while(r2Set.IsEOF() == FALSE) { r2Count++; CString str2id;// id int(4) unsigned CString str2name;// name varchar(50) r2Set.GetFieldValue("id", str2id); r2Set.GetFieldValue("name", str2name); r2Set.MoveNext(); strIDList.AddTail(str2id); strNameList.AddTail(str2name); } r2Set.Close(); r1Set.MoveNext(); } r1Set.Close(); rSet.MoveNext(); } if(rCount < 1) { //m_bErrorFlag = FALSE; } rSet.Close(); dataBase.Close(); 如何把MPEG4格式的文件合并起来 不delete析构函数会执行吗??? 如何显示竖排文字? 关于CWnd::SetFocus()的问题 CHARFORMAT??一个很着急的问题请教,不知哪位大侠知道!十分感谢! 请问有关SMTP和POP3的RFC文档编号分别是多少? ADO可以远程访问网络上共享的Acess数据库吗? 弹出模式对话框,如何阻止其他Windows消息的响应 怎样播放falsh文件 大侠帮忙解决个关于vs2010静态代码分析的问题 要会多少种这样的~~~敬请关注 简单数据结构问题啊
CRecordset rSet;
CString strT;
strT.Format("DSN=%s;UID=%s;PWD=%s", g_strDSN, g_strUSE, g_strPAS); if(dataBase.OpenEx(strT, CDatabase::noOdbcDialog) == FALSE)
{
return;
} // dataBase.OpenEx("DSN=wlms;UID=root;PWD=");
rSet.m_pDatabase = &dataBase; // クンラ飆Dイ鰈メカヤモヲヨユカヒ
// circuit2group(サリツキキヨラ魍・ア惞コ
// Field Type Comments Input Method
// id int(6) unsigned ラヤカッノ嵭ノid」ャラヤヤモイサミ靨ェツシネ・ャマオヘウラヤカッノ嵭ノ
// tid int(6) unsigned terminal id モテサァヘィケム。ヤ嵭ノ
// gid int(6) unsigned group id モテサァヘィケム。ヤ嵭ノ
// cid int(6) unsigned circuit id モテサァヘィケム。ヤ嵭ノ
CString strSQL = "SELECT * FROM circuit2group WHERE `gid` = '%s' AND `tid` = '%s'";
strT.Format(strSQL, strGID, strTID); rSet.Open(AFX_DB_USE_DEFAULT_TYPE, strT);
int rCount = 0;
while(rSet.IsEOF() == FALSE)
{
rCount++;
CString strtid;
CString strcid; rSet.GetFieldValue("tid", strtid);
rSet.GetFieldValue("cid", strcid); /*
contactor(スモエ・ニナマ「)ア惞コ id int(4) unsigned スモエ・ニd」ャラヤヤモ」ャカヤモヲモレcirtuitア櫢ミオトcid
tid int(4) unsigned ヒユカヒア犲ナ」ャカヤモヲモレterminalア櫢ミオトid イサミ靨ェツシネ・ャ
lid int(2) unsigned ヒユカヒトレイソスモエ・ニ犲ナ(1,2,3,...) イサミ靨ェツシネ・ャ
name varchar(2) スモエ・ニ﨤ニモテサァハヨカッツシネ・
type int(2) unsigned タ獎ヘ(ネォメケオニ。「ー・ケオニ。「ウ、テニ。「ハホオニ) モテサァヘィケComboBoxム。ヤ・
desc text スモエ・ニ靆ナマ「モテサァハヨカッツシネ・
status int(1) unsigned スモエ・ニエフャ(ニテ。「ホエモテ) モテサァヘィケComboBoxム。ヤ・
*/
/*
circuit(サリツキミナマ「)ア惞コ id int(8) unsigned サリツキid」ャラヤヤモ」ャカヤモヲモレphaseア櫢ミオトcidラヨカホ
cid int(4) unsigned スモエ・ニ犲ナ」ャカヤモヲモレcontactorア櫢ミオトid イサミ靨ェツシネ・ャヤレミツヤモエ・
name varchar(20) サリツキテ﨤ニモテサァハヨカッツシネ・
status int(1) unsigned サリツキラエフャモテサァヘィケComboBoxム。ヤ・
rsid int(4) unsigned ヒキカホア犲ナモテサァヘィケComboBoxム。ヤ・
*/
CRecordset r1Set;
r1Set.m_pDatabase = &dataBase;
CString str1SQL;
str1SQL.Format("SELECT * FROM contactor WHERE id = '%s' AND id = '%s'", strcid, strCOID);
r1Set.Open(AFX_DB_USE_DEFAULT_TYPE, str1SQL);
int r1Count = 0;
while(r1Set.IsEOF() == FALSE)
{
r1Count++;
CString str1id;// id int(4) unsigned スモエ・ニd
CString str1tid;// tid int(4) unsigned ヒユカヒア犲ナ
CString str1lid;// lid int(2) unsigned ヒユカヒトレイソスモエ・ニ犲ナ
CString str1name;// name varchar(2) スモエ・ニ﨤ニ r1Set.GetFieldValue("id", str1id);
r1Set.GetFieldValue("tid", str1tid);
r1Set.GetFieldValue("name", str1name); CRecordset r2Set;
r2Set.m_pDatabase = &dataBase;
CString str2SQL;
str2SQL.Format("SELECT * FROM circuit WHERE id = '%s'", str1id);
r2Set.Open(AFX_DB_USE_DEFAULT_TYPE, str2SQL);
int r2Count = 0;
while(r2Set.IsEOF() == FALSE)
{
r2Count++;
CString str2id;// id int(4) unsigned スモエ・ニd
CString str2name;// name varchar(50) ヨユカヒテ﨤ニ r2Set.GetFieldValue("id", str2id);
r2Set.GetFieldValue("name", str2name);
r2Set.MoveNext(); strIDList.AddTail(str2id);
strNameList.AddTail(str2name);
}
r2Set.Close();
r1Set.MoveNext(); }
r1Set.Close();
rSet.MoveNext();
} if(rCount < 1)
{
//AfxMessageBox("シ・IRCUIT2GROUPア桄アテサモミハセンアサシ・ス」。");
//m_bErrorFlag = FALSE;
} rSet.Close();
dataBase.Close();
CDatabase dataBase;
CRecordset rSet;
CString strT;
strT.Format("DSN=%s;UID=%s;PWD=%s", g_strDSN, g_strUSE, g_strPAS); if(dataBase.OpenEx(strT, CDatabase::noOdbcDialog) == FALSE)
{
return;
} // dataBase.OpenEx("DSN=wlms;UID=root;PWD=");
rSet.m_pDatabase = &dataBase;
CString strSQL = "SELECT * FROM circuit2group WHERE `gid` = '%s' AND `tid` = '%s'";
strT.Format(strSQL, strGID, strTID); rSet.Open(AFX_DB_USE_DEFAULT_TYPE, strT);
int rCount = 0;
while(rSet.IsEOF() == FALSE)
{
rCount++;
CString strtid;
CString strcid; rSet.GetFieldValue("tid", strtid);
rSet.GetFieldValue("cid", strcid); CRecordset r1Set;
r1Set.m_pDatabase = &dataBase;
CString str1SQL;
str1SQL.Format("SELECT * FROM contactor WHERE id = '%s' AND id = '%s'", strcid, strCOID);
r1Set.Open(AFX_DB_USE_DEFAULT_TYPE, str1SQL);
int r1Count = 0;
while(r1Set.IsEOF() == FALSE)
{
r1Count++;
CString str1id;// id int(4) unsigned
CString str1tid;// tid int(4) unsigned
CString str1lid;// lid int(2) unsigned
CString str1name;// name varchar(2) r1Set.GetFieldValue("id", str1id);
r1Set.GetFieldValue("tid", str1tid);
r1Set.GetFieldValue("name", str1name); CRecordset r2Set;
r2Set.m_pDatabase = &dataBase;
CString str2SQL;
str2SQL.Format("SELECT * FROM circuit WHERE id = '%s'", str1id);
r2Set.Open(AFX_DB_USE_DEFAULT_TYPE, str2SQL);
int r2Count = 0;
while(r2Set.IsEOF() == FALSE)
{
r2Count++;
CString str2id;// id int(4) unsigned
CString str2name;// name varchar(50) r2Set.GetFieldValue("id", str2id);
r2Set.GetFieldValue("name", str2name);
r2Set.MoveNext(); strIDList.AddTail(str2id);
strNameList.AddTail(str2name);
}
r2Set.Close();
r1Set.MoveNext(); }
r1Set.Close();
rSet.MoveNext();
} if(rCount < 1)
{
//m_bErrorFlag = FALSE;
} rSet.Close();
dataBase.Close();