我的要求如下:
excel 中的结构如下: 工号,姓名,社保基数,公积金基数,备注.数据库中结构如下. 工号,姓名,类别,部门名称,社保基数,公积金基数,社保类备注,备注.
并且已经有记录.(假如如下:)
工号,姓名, 类别,部门名称,社保基数,公积金基数,社保类备注,备注.
0001,小王1, 职员, 制造部,
0002小王2,职员,制造部,
0003,小王3,职员,管理部, excel表中结构和记录如下:
工号,姓名, ,社保基数,公积金基数,社保类备注,备注.
0001,小王1, 1800, 1900 未缴 无
0002小王2, 1800, 1900 已缴 有
0003,小王3, 1800, 1900 未缴 无
0004, 未有, 2000, 3500 已缴 有
--------------------------------------------------------------------
我要excel中的数据列更新到数据库中数据列去. 匹配条件是 工号= 工号.
excel中的0004记录在数据库中没有的则不更新.-------------------------------------------------
我用datatable.merge方法发现全部当做新增的行了.-----------------------------
现在想只要得到结果就行了,不用merge也行.以上是表的示例,可否给个代码参考一下..............................
我全部的分都给你...............................................................
excel 中的结构如下: 工号,姓名,社保基数,公积金基数,备注.数据库中结构如下. 工号,姓名,类别,部门名称,社保基数,公积金基数,社保类备注,备注.
并且已经有记录.(假如如下:)
工号,姓名, 类别,部门名称,社保基数,公积金基数,社保类备注,备注.
0001,小王1, 职员, 制造部,
0002小王2,职员,制造部,
0003,小王3,职员,管理部, excel表中结构和记录如下:
工号,姓名, ,社保基数,公积金基数,社保类备注,备注.
0001,小王1, 1800, 1900 未缴 无
0002小王2, 1800, 1900 已缴 有
0003,小王3, 1800, 1900 未缴 无
0004, 未有, 2000, 3500 已缴 有
--------------------------------------------------------------------
我要excel中的数据列更新到数据库中数据列去. 匹配条件是 工号= 工号.
excel中的0004记录在数据库中没有的则不更新.-------------------------------------------------
我用datatable.merge方法发现全部当做新增的行了.-----------------------------
现在想只要得到结果就行了,不用merge也行.以上是表的示例,可否给个代码参考一下..............................
我全部的分都给你...............................................................
{
string strSheetName = "sheet1";
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'"; //Sql语句
string strExcel = "select * from [" + strSheetName + "$] ";
DataSet ds = new DataSet(); //连接数据源
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open(); //适配到数据源
OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, conn);
adapter.Fill(ds, "data");
conn.Close();
GridView1.DataSource = ds.Tables["data"];
GridView1.DataBind();
Label1.Text = ds.Tables[0].Rows.Count.ToString();
SqlAccess.Sqldatabase sql = new SqlAccess.Sqldatabase();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
sb.Append("insert into data values('" + ds.Tables[0].Rows[i]["companyname"] + "','" + ds.Tables[0].Rows[i]["telname"] + "','" + ds.Tables[0].Rows[i]["qytel"] + "','" + ds.Tables[0].Rows[i]["fax"] + "');");
}
sql.ExecuteNonQuery(CommandType.Text, sb.ToString());
}
protected void Button1_Click(object sender, EventArgs e)
{
string fileName = null;
try
{
Boolean fileOK = false;
String path = Server.MapPath("./doc/");
if (FileUpload2.HasFile)
{
String fileExtension = System.IO.Path.GetExtension(FileUpload2.FileName).ToLower(); String[] allowedExtensions = { ".xls" }; //C#读取Excel中数据
for (int i = 0; i < allowedExtensions.Length; i++)
{
if (fileExtension == allowedExtensions[i])
{
fileOK = true;
}
}
}
if (fileOK)
{
fileName = "r_" + DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss") + "_" + DateTime.Now.Millisecond + System.IO.Path.GetExtension(FileUpload2.FileName).ToLower();
if (File.Exists(path + fileName))
{
Random rnd = new Random(10000);
fileName = fileName + rnd.Next();
}
FileUpload2.PostedFile.SaveAs(path + fileName);
}
else
{
}
} catch (Exception exp)
{ }
ExcelToDS(Server.MapPath(".") + "\\doc\\" + fileName);
}
具体如何做就不知道了.
用sqlcommand?
还是sqlcommandbuilder?
登录名:poloyzhang
总技术分:406
总技术排名:48135
---------结贴情况---------
截至:2010-07-29 16:02:21
总发帖:13个
正常结贴:10个
未结贴:1个
结贴率:92.31%
评语:楼主,你高的结贴率才是我们回答的动力!
--------------------------