以下的程序是提交excel中的数据到sql数据库中,但是我点击提交时,不能读出的excel中的表的第一行数据,只能够读出后面的数据;
当我向sql数据库中用update提交时,会出现“该行已经属于另一个表”的错误,而且数据也不能提交到数据库中,这是什么原因呢,望高手指教;
private void btnupload_Click(object sender, System.EventArgs e)
{
OleDbConnection objConn=null;
DataSet data=new DataSet();
try
{
string strConn= "Provider=Microsoft.Jet.OleDb.4.0;datasource="+txtpath.Text+";Extended Properties=Excel 8.0;";
objConn=new OleDbConnection(strConn);
objConn.Open();
string strSql= "Select * From [Sheet1$]";
OleDbCommand objCmd=new OleDbCommand(strSql,objConn);
OleDbDataAdapter oleada=new OleDbDataAdapter(objCmd);
oleada.Fill(data,"score");
objConn.Close();
}
catch(Exception ex)
{
objConn.Close();
txtpath.Text=ex.Message;
}
try
{
string strconn="provider=SQLOLEDB;data source=192.168.0.90;initial catalog=Score;user id=sa;password=;Trusted_Connection=Yes;";
string strSQL="SELECT * FROM B013";
OleDbConnection conn=new OleDbConnection(strconn);
OleDbDataAdapter da=new OleDbDataAdapter(strSQL,conn);
//OleDbCommandBuilder cb=new OleDbCommandBuilder(da);
DataSet ds=new DataSet();
conn.Open();
da.Fill(ds,"oldscore");
for(int i=1;i<data.Tables["score"].Rows.Count;i++)
{
ds.Tables["oldscore"].Rows.Add(data.Tables["score"].Rows[i]);
}
DataGrid1.DataSource=ds;
DataGrid1.DataBind();
/* OleDbTransaction txn=conn.BeginTransaction();
da.UpdateCommand.Transaction=txn;
da.InsertCommand.Transaction=txn;
da.DeleteCommand.Transaction=txn;
OleDbTransaction txn=conn.BeginTransaction();*/
da.Update(ds,"oldscore");
//txn.Commit();
conn.Close();
txtpath.Text="Upload Successful!";
}
catch(Exception exc)
{
txtpath.Text=exc.Message;
}
当我向sql数据库中用update提交时,会出现“该行已经属于另一个表”的错误,而且数据也不能提交到数据库中,这是什么原因呢,望高手指教;
private void btnupload_Click(object sender, System.EventArgs e)
{
OleDbConnection objConn=null;
DataSet data=new DataSet();
try
{
string strConn= "Provider=Microsoft.Jet.OleDb.4.0;datasource="+txtpath.Text+";Extended Properties=Excel 8.0;";
objConn=new OleDbConnection(strConn);
objConn.Open();
string strSql= "Select * From [Sheet1$]";
OleDbCommand objCmd=new OleDbCommand(strSql,objConn);
OleDbDataAdapter oleada=new OleDbDataAdapter(objCmd);
oleada.Fill(data,"score");
objConn.Close();
}
catch(Exception ex)
{
objConn.Close();
txtpath.Text=ex.Message;
}
try
{
string strconn="provider=SQLOLEDB;data source=192.168.0.90;initial catalog=Score;user id=sa;password=;Trusted_Connection=Yes;";
string strSQL="SELECT * FROM B013";
OleDbConnection conn=new OleDbConnection(strconn);
OleDbDataAdapter da=new OleDbDataAdapter(strSQL,conn);
//OleDbCommandBuilder cb=new OleDbCommandBuilder(da);
DataSet ds=new DataSet();
conn.Open();
da.Fill(ds,"oldscore");
for(int i=1;i<data.Tables["score"].Rows.Count;i++)
{
ds.Tables["oldscore"].Rows.Add(data.Tables["score"].Rows[i]);
}
DataGrid1.DataSource=ds;
DataGrid1.DataBind();
/* OleDbTransaction txn=conn.BeginTransaction();
da.UpdateCommand.Transaction=txn;
da.InsertCommand.Transaction=txn;
da.DeleteCommand.Transaction=txn;
OleDbTransaction txn=conn.BeginTransaction();*/
da.Update(ds,"oldscore");
//txn.Commit();
conn.Close();
txtpath.Text="Upload Successful!";
}
catch(Exception exc)
{
txtpath.Text=exc.Message;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货