C#添加了ADOX,应该怎样连接? http://dotnet.aspx.cc/article/89137097-0313-4197-aebf-116e391e354a/read.aspx 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我看了楼上的提供的文章,做出了如下代码:string connstr="Provider=Microsoft.Jet.Oledb.4.0;Data Source=" +Server.MapPath(ConfigurationSettings.AppSettings["数据库路径"])+";"; ADOX.CatalogClass MyDB=new ADOX.CatalogClass(); ADOX.TableClass MyTable=new ADOX.TableClass(); MyDB.ActiveConnection =connstr; MyTable.ParentCatalog=MyDB; MyTable.Name="memo"; MyTable.Columns[MyFieldName].Name = strNewName;-------------------------------------------------------------------------------但是运行起来有报错啊...参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。错误行:MyDB.ActiveConnection =connstr; ADOX.没用过,一般用ADO,ADO.NET,给你贴一份在c#中使用ado的代码:1、在net项目里添加adodb的引用:(打开引用对话框的第二项就是) 程序头添加: using ADODB;2、具体程序: private void button1_Click(object sender, EventArgs e) { Connection cn = new Connection(); Recordset rec = new Recordset(); string strCnn=""Data Source=(local);Initial Catalog=LineMonitor;" + "Integrated Security=SSPI;";"; string strSQL = "Select * from UserManager"; try { cn.Open(strCnn, "", "", -1); rec.Open(strSQL, cn, CursorTypeEnum.adOpenStatic, LockTypeEnum.adLockOptimistic, -1); //这里加上你要操作的代码 rec.Close(); cn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } //创建access数据库 ADOX.Catalog cat = new ADOX.Catalog(); cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/123.mdb");Jet OLEDB:Engine Type=5"); //连接access数据库 ADODB.Connection conn = new ADODB.Connection(); conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/123.mdb");Jet OLEDB:Engine Type=5", null, null, -1); cat.ActiveConnection = conn;同时我想问下,为什么我这样设置默认值、是否可为空值就不行呢?ADOX.Column col = new ADOX.Column();col.Name = "xxxxxxxxxx";col.Properties["Jet OLEDB:Allow Zero Length"].Value = false;col.Properties["Default"].Value = false;tb.Columns.Append(col, ADOX.DataTypeEnum.adDBDate, 8);请高手去这里帮我看看http://topic.csdn.net/u/20080225/13/75a3f94b-07f3-477d-ad3a-bd9bbaba407d.html?seed=456995098 如果楼主要改列名的表数据量不算大的话,可以这样进行,先增加一列[新字段名],字段类型什么的与原字段相同,然后将新增列的值更新成原列的值,最后删除原来的列下面是一段示例代码, OleDbConnection conn = new OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=E:\Simple.mdb;" ); conn.Open(); OleDbCommand cmd = new OleDbCommand(); cmd.Connection = conn; //增加新列名,除列名不同之外,字段类型、宽度等应该与原列相同 cmd.CommandText = "ALTER TABLE TEST ADD [newField] varchar(10) "; cmd.ExecuteNonQuery(); //将原列的内容复制到新列中 cmd.CommandText = "UPDATE TEST SET [newField]=[oldField] "; cmd.ExecuteNonQuery(); //删除原列(旧列) cmd.CommandText = "ALTER TABLE TEST DROP COLUMN [oldField] "; cmd.ExecuteNonQuery(); conn.Close(); 请教思路,保存记录时,如何分别处理“新增”与“保存”这两种情况呢? 如何探测Internet中的ftp资源? 关于点击 button, 自动添加物体的问题,谢谢。 小弟 新手 求CS开发中文件下载的 代码 C#怎样把一个Bitmap以梯形的形状绘制在窗体上 如何在RichTextBox替换选定文本,并不改变其它文本的属性? 100分求教类的问题 请问,如何复制程序设置 高分求:WebDeployment生成时错误,缺少using指令 想做个C#的东西 就是用一个按键代替3个按键 报考程序员的一些问题 请教一个C#查询的应用程序问题?急用?
+Server.MapPath(ConfigurationSettings.AppSettings["数据库路径"])+";"; ADOX.CatalogClass MyDB=new ADOX.CatalogClass();
ADOX.TableClass MyTable=new ADOX.TableClass();
MyDB.ActiveConnection =connstr;
MyTable.ParentCatalog=MyDB;
MyTable.Name="memo";
MyTable.Columns[MyFieldName].Name = strNewName;-------------------------------------------------------------------------------
但是运行起来有报错啊...参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
错误行:MyDB.ActiveConnection =connstr;
程序头添加:
using ADODB;
2、具体程序: private void button1_Click(object sender, EventArgs e)
{
Connection cn = new Connection();
Recordset rec = new Recordset(); string strCnn=""Data Source=(local);Initial Catalog=LineMonitor;"
+ "Integrated Security=SSPI;";";
string strSQL = "Select * from UserManager"; try
{
cn.Open(strCnn, "", "", -1);
rec.Open(strSQL, cn, CursorTypeEnum.adOpenStatic, LockTypeEnum.adLockOptimistic, -1); //这里加上你要操作的代码
rec.Close();
cn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
//创建access数据库
ADOX.Catalog cat = new ADOX.Catalog();
cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/123.mdb");Jet OLEDB:Engine Type=5");
//连接access数据库
ADODB.Connection conn = new ADODB.Connection();
conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/123.mdb");Jet OLEDB:Engine Type=5", null, null, -1);
cat.ActiveConnection = conn;
同时我想问下,为什么我这样设置默认值、是否可为空值就不行呢?ADOX.Column col = new ADOX.Column();
col.Name = "xxxxxxxxxx";
col.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
col.Properties["Default"].Value = false;
tb.Columns.Append(col, ADOX.DataTypeEnum.adDBDate, 8);请高手去这里帮我看看
http://topic.csdn.net/u/20080225/13/75a3f94b-07f3-477d-ad3a-bd9bbaba407d.html?seed=456995098
然后将新增列的值更新成原列的值,最后删除原来的列
下面是一段示例代码, OleDbConnection conn = new OleDbConnection( @"Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=E:\Simple.mdb;" );
conn.Open(); OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
//增加新列名,除列名不同之外,字段类型、宽度等应该与原列相同
cmd.CommandText = "ALTER TABLE TEST ADD [newField] varchar(10) ";
cmd.ExecuteNonQuery(); //将原列的内容复制到新列中
cmd.CommandText = "UPDATE TEST SET [newField]=[oldField] ";
cmd.ExecuteNonQuery(); //删除原列(旧列)
cmd.CommandText = "ALTER TABLE TEST DROP COLUMN [oldField] ";
cmd.ExecuteNonQuery(); conn.Close();