我把excel表导入sql server table中时少了200条数据!
代码如下::
..//sql 数据库连接
string filepath = FileUpload1.PostedFile.FileName;//取得excel文件路径
OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filepath + ";" + "Extended Properties=Excel 8.0;");
objConn.Open();
DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[0][2].ToString().Trim();//获取 Excel 的表名,默认值是sheet1or
string strCom = "SELECT * FROM [" + tableName + "]";
System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strCom, objConn);
DataSet ds = new DataSet();//取得数据集
myCommand.Fill(ds, tableName);//连接数据
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
string 部门 = ds.Tables[0].Rows[i][0].ToString();
string 姓名 = ds.Tables[0].Rows[i][1].ToString();
string 编号 = ds.Tables[0].Rows[i][2].ToString();
string 日期时间 = ds.Tables[0].Rows[i][3].ToString();
string 签到 = ds.Tables[0].Rows[i][4].ToString();
string 标识号 = ds.Tables[0].Rows[i][5].ToString();
string 身份证号 = ds.Tables[0].Rows[i][6].ToString();
if (姓名 != "")
{
SqlCommand selectcmd = new SqlCommand("select count(*) from DSQ where 日期时间='" + 日期时间 + "'", conn);
int count = Convert.ToInt32(selectcmd.ExecuteScalar());
if (count > 0)
{
Response.Write("<script language='javascript'>alert('请不要重复导入!')</script>");
return;
}
else
{
SqlCommand insertcmd = new SqlCommand("INSERT INTO DSQ ( 部门,姓名,编号,日期时间,标识号,签到,身份证号) VALUES ('" + 部门 + "','" + 姓名 + "','" + 编号 + "','" + 日期时间 + "','" + 标识号 + "','" + 签到 + "','" + 身份证号 + "') ", conn);
insertcmd.ExecuteNonQuery();
}
//insertcount++;
}
直接用数据导入工具就可以导的啊