“如何使用VS2005中的OLEDB的JET SQL驱动来动态创建数据表”,这个问题看似简单,网上大把的资料,但是我实现起来,还是很有难度的,可以说,我是用了很长时间才收集起来的。
现在我把我的解决方法,写下了,既是总结,也是希望能帮到可能正在搜索这个资料的朋友。
对于这个问题,我觉得,比较难的地方就是,有太多类似的资料和类似的方法,但是事实上,JET SQL并不支持太多的方法。
先把我的代码贴出来,然后再说吧。
public void CreatNewTbUser(string MDBName,string NewTbUserName)
        
{
            
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
            strConnection
+= @"Data Source="+MDBName;
            OleDbConnection objConnection 
= new OleDbConnection(strConnection);
            
string OleDbCommandString = "CREATE TABLE " + NewTbUserName;
            OleDbCommandString
+=" ( ";
            OleDbCommandString
+="AutoID AUTOINCREMENT(1, 1),UserName TEXT(50),UserPsd TEXT(50),"
            OleDbCommandString
+="LastLoginTime DateTime,LoginTimes Int,MailInbox TEXT(10)";
            OleDbCommandString 
+= ");";
            OleDbCommand objCommand 
= new OleDbCommand(OleDbCommandString,objConnection);
            objConnection.Open();
            objCommand.ExecuteNonQuery();
            objCommand.Dispose();
            objConnection.Close();
        }

怎么好像自己做的时候感觉很多困难,但是做出来了,感觉好像对于自己的困难也没有什么好说的了。
我先是不知道应该使用OleDbCommand的什么方法来执行这个SQL的操作,后来是,不知道,怎么写SQL代码。接着是不知道,怎么设置自动编号的字段,接着又发现,Int这个字段类型后面不支持加括号。
目前,或者说,现在我还在琢磨,怎么设置主键。呵呵,设置主键,单独作为一个文章吧。
设置主键,正像下面留言的这位朋友说的,加上Primary Key就可以了。
OleDbCommandString+="AutoID AUTOINCREMENT(1, 1) Primary Key,UserName TEXT(50),UserPsd TEXT(50),"