我尝试用直接编程读取和写入的方法但是出错程序如下:
OleDbConnection olconn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Users\Administrator\Desktop\mobile.mdb");
olconn.Open();
SqlConnection sqlconn = new SqlConnection(@"data Source=.\SQLEXPRESS;database=mobile;user id=sa;password=123");
using (OleDbCommand olecomm = new OleDbCommand())
{
int i = 0;
olecomm.CommandText = "select * from list";
OleDbDataReader olereader = olecomm.ExecuteReader();
while (olereader.Read())
{
using (SqlCommand comm = new SqlCommand())
{
i++;
comm.CommandText =string.Format( "insert into list(num,code,city,cardtype) values({0},{1},{2},{3})",Convert.ToString(olereader["num"]),Convert.ToString(olereader["code"]),Convert.ToString(olereader["city"]),Convert.ToString(olereader["cardtype"]));
comm.ExecuteNonQuery();
Console.Write(i.ToString()+" ");
}
}
OleDbConnection olconn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\Users\Administrator\Desktop\mobile.mdb");
olconn.Open();
SqlConnection sqlconn = new SqlConnection(@"data Source=.\SQLEXPRESS;database=mobile;user id=sa;password=123");
using (OleDbCommand olecomm = new OleDbCommand())
{
int i = 0;
olecomm.CommandText = "select * from list";
OleDbDataReader olereader = olecomm.ExecuteReader();
while (olereader.Read())
{
using (SqlCommand comm = new SqlCommand())
{
i++;
comm.CommandText =string.Format( "insert into list(num,code,city,cardtype) values({0},{1},{2},{3})",Convert.ToString(olereader["num"]),Convert.ToString(olereader["code"]),Convert.ToString(olereader["city"]),Convert.ToString(olereader["cardtype"]));
comm.ExecuteNonQuery();
Console.Write(i.ToString()+" ");
}
}
解决方案 »
- 请教BCB怎么调用c#的COM(调用的时候提示抽象类.....)
- 上传文件(如图片)后,Session和Cookies值丢失怎么处理?
- 日历控件+复选框
- 同为md5加密结果会不同吗?
- get;set;的疑问
- ListItemType.Item 和 ListItemType.AlternatingItem 的区别?
- 请熟悉c#的朋友推荐一本学习c#的入门好书!!【求助】
- 在线等,如何能读取WebBrowser打开网页的HTML源文件内容?
- 关于EDIT控件的笨问题!!!
- 微软专家和各位同行请进入:一个怪问题,我设置断点后,发现程序停不下来,查错时候很不方便,是不是哪里需要设置一下???
- XML的问题
- WPF Error 在调用Web服务出现的错误
我怎么没看到sqlconn 打开呀
string filepath = Server.MapPath("student.mdb");
string connaccess = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + filepath + "'";
string access = "select * from [Tb]";
OleDbConnection oconn = new OleDbConnection(connaccess);
oconn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter(access, oconn);
DataSet ds = new DataSet();
myCommand.Fill(ds, "xxx");
oconn.Close();
foreach (DataRow dr in ds.Tables["xxx"].Rows)
{}
或sqldataadpater更新数据库表
conn.Open();
想起一个广告词,有合适的工具,做起事来就事半功倍,XXX牙刷很多年前的广告词,tmd,一转眼就老了
先拿到一个dataset,不要每行都 new SqlCommand(),还有就是那个Insert语句有问题,正确写法如下:
DataSet ds = new DataSet();
using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=H:\work\GLData\GLDB.mdb;User Id=Admin;Password=;"))
{
var cmd = conn.CreateCommand();
cmd.CommandText = "SELECT * FROM EXPORT_INFO";
var adapter = new OleDbDataAdapter(cmd);
Console.WriteLine(string.Format("数据共有{0}行", adapter.Fill(ds)));
} using (SqlConnection conn = new SqlConnection(@"data Source=.\SQLEXPRESS;database=mobile;user id=sa;password=123"))
{
var cmd = conn.CreateCommand();
conn.Open();
foreach (DataRow row in ds.Tables[0].Rows)
{
cmd.CommandText = "insert into list(num,code,city,cardtype) values(@num,@code,@city,@cardtype)";
cmd.Parameters.Add(new SqlParameter("num", row["num"].ToString()));
cmd.Parameters.Add(new SqlParameter("code", row["code"].ToString()));
cmd.Parameters.Add(new SqlParameter("city", row["city"].ToString()));
cmd.Parameters.Add(new SqlParameter("cardtype", row["cardtype"].ToString()));
cmd.ExecuteNonQuery();
}
}