OleDbCommand checkcmd = new OleDbCommand("select count(*) from [" + tableName + "] where 日期时间 like '200_-_-_ 上午% ' )");
int count1 = Convert.ToInt32(checkcmd.ExecuteScalar());
if (count1 >0)为什么一执行到这里就跳过去!
下面是全部代码:
string strcon = "server=(local);database=finger;user id=sa;pwd=";
SqlConnection conn = new SqlConnection (strcon);//链接sql数据库
conn.Open();
try
{
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);//连接数据
GridView1.DataSource = ds;
GridView1.DataBind();
OleDbCommand checkcmd = new OleDbCommand("select count(*) from [" + tableName + "] where 日期时间 like '200_-_-_ 上午% ' or 日期时间 like '200_-_-_ 下午')");
int count1 = Convert.ToInt32(checkcmd.ExecuteScalar());
if (count1 >0)
{
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 ('" + 部门 + "','" + 姓名 + "','" + 编号 + "','" + 日期时间 + "','" + 标识号 + "','"+签到+"','" + 身份证号 + "') ORDER BY 日期时间", conn);
insertcmd.ExecuteNonQuery();
}
//insertcount++;
}
}
}
else
{
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 DSKF 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 DSKF (部门,姓名,登记号码,日期时间,机器号,编号,对比方式) VALUES ('" + 部门 + "','" + 姓名 + "','" + 登记号码 + "','" + 日期时间 + "','" + 机器号 + "','" + 编号 + "','" + 对比方式 + "') ORDER BY 日期时间", conn);
insertcmd.ExecuteNonQuery();
}
//insertcount++;
}
}
}
Response.Write("<script language='javascript'>alert('数据导入成功!')</script>");
}
catch
{
Response.Write("<script language='javascript'>alert('导入失败!');</script>");
}
finally
{
conn.Close();
}
跳到catch证明有错误发生了,和if和else都不再有关系
使用 catch (Exception ex) { throw(ex);} 来看看出了什么错吧,或者干脆先把try...catch去掉,这样才容易发现错误所在
因为你数据表里没有相应的数据,所以count是0吧
"select count(*) from [" + tableName + "] where 日期时间 like '200_-_-_ 上午% ' )" 貌似最后多了一个 ) 应该是"select count(*) from [" + tableName + "] where 日期时间 like '200_-_-_ 上午%' "
直接加断点调试不就可以看到错误原因了
west兄仔细啊!