MFC关于数据库的问题

来源:百度知道 编辑:UC知道 时间:2024/06/18 18:32:58
m_pwd是一个可编辑框的CString.
vSQL = "UPDATE gongzi SET money='" + m_pwd + "' WHERE name='cq'";
没问题这样.
要是我想设一个函数char z='100';
想让money=z;
怎么编呢?
还有如果我搞一个控件datagrid,数据源是表gongzi.
vSQL = "UPDATE gongzi SET money='" + m_pwd + "' WHERE name='cq'";
m_pCommand->CommandText = vSQL;
m_pCommand->Execute(NULL, NULL, 0);
这样后数据改变了,但是我的控件上面的数据没有时时更新,要关了重新运行程序才会更新,我要这么样才能时时更新呢?
void CCommandDlg::OnOkButton()
{
....
try
{
m_pConnection.CreateInstance("ADODB.Connection");
_bstr_t strConnect = "Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=cq;Data Source=LI;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
if(m_pConnection->State == adStateOpen)
{
m_pCommand.CreateInstance("ADODB.Command");

1,工程->添加工程->添加控件AdoData
2,初始化AdoData控件
3,将DataGrid控件的DataSource绑定为AdoData控件标签
4,分别建立DataGrid和AdoData控件对象DataGrid和AdoBata

完成以上步骤后,便可很方便的进行数据库操作了

SQL="select * from gongzi";
Adodb.SetRecordSource(SQL);
Adodb.Refresh();
DataGrid.Refresh();

只要改变SQL,便可进行任意操作,并将数据显示在DataGrid表格里。

你要显示更新后的数据,只要用ADODC重新读取数据库就行了,只要上面4条语句,具体的位置放在你查询操作完后的任何一个位置。

Adodc是控件,使用的时候要建立一个对象,才能使用啊。

这样:把sql语句分开写就行了。比如你想让m_z的值就是money的值
vSQL = "UPDATE gongzi SET " + (CString)m_z + "='" + m_pwd + "' WHERE name='cq'";

数据库更新了控件值没有更新?按你的描述,问题出在你更新数据库后,没有写更新控件值的方法,要自己写个方法重新读取数据库值,然后用这个值更新控件值!

试了一下,代码没有什么问题,连接和访问表都可以成功,不过没有用LZ的数据库表格式,自己乱写了一个。
如果连接出问题,可以检查一下数据库文件是否在程序可以访问的目录,或者DataSource给个完整路径试试。
----
发现一个小问题(不知道是不是贴出来的文字不对)
在连接字符串中间有个换行,最好写在一行,如果一定要换行,在后面加上\