void AddData()
{
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += "Data Source=";
strConnection += Directory.GetCurrentDirectory() + (@"\Test.mdb"); //用于指定数据库文件与.exe文件在同一目录下
OleDbConnection conn = new OleDbConnection(strConnection); conn.Open();
OleDbCommand cmd = new OleDbCommand("insert into Users ([UserName],[TrueName],[Address],[Mail],[Tel],[Phone],[Company],[Re])"
+ " Values ('zhang','张三','福建厦门思明区','[email protected]','0592-29668088','13860188888','厦门软件园','备注')", conn);
cmd.ExecuteNonQuery();
conn.Close();
}
这是用c#写的
大家帮忙改改改,使它能在vc++6.0上面运行的
{
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += "Data Source=";
strConnection += Directory.GetCurrentDirectory() + (@"\Test.mdb"); //用于指定数据库文件与.exe文件在同一目录下
OleDbConnection conn = new OleDbConnection(strConnection); conn.Open();
OleDbCommand cmd = new OleDbCommand("insert into Users ([UserName],[TrueName],[Address],[Mail],[Tel],[Phone],[Company],[Re])"
+ " Values ('zhang','张三','福建厦门思明区','[email protected]','0592-29668088','13860188888','厦门软件园','备注')", conn);
cmd.ExecuteNonQuery();
conn.Close();
}
这是用c#写的
大家帮忙改改改,使它能在vc++6.0上面运行的
conn.CreateInstance(__uuidof(Connection));CString strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += "Data Source=";
strConnection += Directory.GetCurrentDirectory() + (@"\Test.mdb");
conn->Open(strConnection, _T(""), _T(""), NULL);
CString strCmd = "insert into Users ([UserName],[TrueName],[Address],[Mail],[Tel],[Phone],[Company],[Re])"
strcmd += " Values ('zhang','张三','福建厦门思明区','[email protected]','0592-29668088','13860188888','厦门软件园','备注')"
_variant_t empty;
Conn->Execute(_bstr_t(strCmd), &empty, adCmdText);
这个是.net的库函数
有没有用vc的表示同一目录下的
void GetCurrentPath(char* str)
{
char tmp[_MAX_PATH] = {0};
GetModuleFileName(NULL,tmp,_MAX_PATH);
char* p = strrchr(tmp,'\\');
*(p+1) = '\0';
memcpy(str,tmp,strlen(tmp));
}
GetCurrentDirectory
The GetCurrentDirectory function retrieves the current directory for the current process. DWORD GetCurrentDirectory(
DWORD nBufferLength, // size of directory buffer
LPTSTR lpBuffer // directory buffer
);
但小心文件对话框其实既然是相同目录,直接用相对路径不就完了?
{
char tmp[_MAX_PATH] = {0};
GetModuleFileName(NULL,tmp,_MAX_PATH);
char* p = strrchr(tmp,'\\');
*(p+1) = '\0';
memcpy(str,tmp,strlen(tmp));
}这个函数实现了得到你可执行文件目录的功能
得到这个字符串以后你可以把它赋值给CString strPath;的变量然后再进行字符串操作就可以了
不好意思,写上面的代码的时候没有细看你中间用了c#的路径_ConnectionPtr conn;
conn.CreateInstance(__uuidof(Connection)); char szFilePath[MAX_PATH];
GetCurrentPath(szFilePath);CString strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += "Data Source=";
strConnection += szFilePath;
strConnection += ("Test.mdb");
conn->Open(strConnection, _T(""), _T(""), NULL);
CString strCmd = "insert into Users ([UserName],[TrueName],[Address],[Mail],[Tel],[Phone],[Company],[Re])"
strcmd += " Values ('zhang','张三','福建厦门思明区','[email protected]','0592-29668088','13860188888','厦门软件园','备注')"
_variant_t empty;
Conn->Execute(_bstr_t(strCmd), &empty, adCmdText);
conn.CreateInstance(__uuidof(Connection));
conn->Open(_T("File Name=myconn.udl"), _T(""), _T(""), NULL);CString strCmd = "insert into Users ([UserName],[TrueName],[Address],[Mail],[Tel],[Phone],\
[Company],[Re]) Values ('zhang','张三','福建厦门思明区','[email protected]','0592-\
29668088','13860188888','厦门软件园','备注')" ;
_variant_t var;
conn->Execute(_bstr_t(strCmd.GetBuffer(0)), &var, adCmdText);其实与数据库相关的语句都是一样的,只是你用的控件是ole控件,我们是用的ado控件;还有,你用到了c#中的库函数,我这里用了udl是为了不用任何库函数,当然也用到了一个,是CString类里面的。如果你不想用udl文件,可以把该文件用记事本打开,然后把File Name=myconn.udl这一句用该文件里面的语句换了就可以了.