我尝试用直接编程读取和写入的方法但是出错程序如下:
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()+"   ");
                    }
                }

解决方案 »

  1.   

    报什么错?
    我怎么没看到sqlconn 打开呀 
      

  2.   

    sql sever 不是有个导入功能吗  你选一选 就导进去了啊  怎么还写代码!
      

  3.   

      olconn.Open();  在这就报错了!!
      

  4.   

    olconn.Open “System.Data.Common.DbConnection.Open()”是一个“方法”,这在给定的上下文中无效
      

  5.   

    导入向导
    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更新数据库表
      

  6.   

    没有实例化,(new System.Data.Common.DbConnection()).Open()
      

  7.   

    修改代码如下:System.Data.Common.DbConnection conn=new System.Data.Common.DbConnection("");
    conn.Open();
      

  8.   


    想起一个广告词,有合适的工具,做起事来就事半功倍,XXX牙刷很多年前的广告词,tmd,一转眼就老了
      

  9.   

    建议先尝试是否可以正常读取数据,然后再考虑是否可以写入Sqlserver
    先拿到一个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();
                    }
                }