不能用ds更新,因为dataset不是从mysql查询出来的。数据结构不一致。直接用sql更新吧。

解决方案 »

  1.   

    直接用insert into 表。不过要循环
      

  2.   

    再说这基础的数据库insert语句,你是必须会用的。
      

  3.   

    protected void Button1_Click(object sender, EventArgs e)
        {
            string name = FileUpload1.FileName;
            string size = FileUpload1.PostedFile.ContentLength.ToString();
            string type = FileUpload1.PostedFile.ContentType;
            string type2 = name.Substring(name.LastIndexOf(".") + 1);
            string fpath = Server.MapPath(@"~/UpFile") + "\\" + name;        if (type2 == "xls")
            {
                FileUpload1.SaveAs(fpath);
                Label1.Text = "你传的文件名称是:" + name + "<br/>文件大小为:" + size + "字节";
                
            }
            else
            {
                Label1.Text = "<font color=red>请你选择.Microsoft Office Excel文件,格式为.xls。</font>";
            }
            //读取XLS数据
            string excel_name;
            excel_name = fpath.Replace("\\", "\\\\");        //连接Excel数据源,并且使其填入DataSet
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                            "Data Source=" + excel_name + ";" + "Extended Properties=Excel 8.0;";
            OleDbConnection conn = new OleDbConnection(strConn);
            OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", strConn);
            DataSet myDataSet = new DataSet();
            myCommand.Fill(myDataSet, "Sheet1$");
            ////更新MySQL数据库。
            string constr = "User Id=root;Host=127.0.0.1;Database=xshool;password=david";
            MySqlConnection mycn = new MySqlConnection(constr);
            mycn.Open();
         
            for (int i = 0; i < myDataSet.Tables[0].Rows.Count; i++)
            {
                string sql = @"insert into users (userName,passWord) Values (?userName,?password)";            MySqlCommand cmd = new MySqlCommand(sql, mycn);
                cmd.Parameters.Add(new MySqlParameter("?userName", MySqlDbType.VarChar, 50));
                cmd.Parameters.Add(new MySqlParameter("?passWord", MySqlDbType.VarChar, 50));
                cmd.Parameters["?userName"].Value = myDataSet.Tables[0].Rows[i][0];
                cmd.Parameters["?passWord"].Value = myDataSet.Tables[0].Rows[i][1];
                cmd.ExecuteNonQuery();
            }
            
        }
      

  4.   

    不能用ds更新,因为dataset不是从mysql查询出来的。数据结构不一致。直接用sql更新吧。========================
    不同意
    只要表架构相同可以更新,我没有用过commmandbuilder ,好像用它需要设置主键,
    我一般直接设置 DataAdpater的insertcommand 或 updatacommand,再update