InsertSQL = "INSERT INTO Applet ([username],[sex],[moble],[Phone],[Address],[Funds],[Funds2],[Credential],[Credit],[Notes],[creat_time],[Status]) VALUES (@username,@sex,@moble,@Phone,@Address,@Funds,@Funds2,@Credential,@Credit,@Notes,@creat_time,@Status)";
try
{
for (int i = 1; i < dt.Rows.Count;i++ )
{
Num = Num + 1;
SqlParameter[] arParams = new SqlParameter[13];
if (dt.Rows[i][0].ToString()!="")
{
arParams[1] = new SqlParameter("@username", dt.Rows[i][0].ToString());
}
else {
arParams[1] = new SqlParameter("@username",DBNull.Value );
} if (dt.Rows[i][1].ToString() != "")
{
arParams[2] = new SqlParameter("@sex", dt.Rows[i][1].ToString());
}
else
{
arParams[2] = new SqlParameter("@sex", DBNull.Value);
} if (dt.Rows[i][2].ToString() != "0")
{
arParams[3] = new SqlParameter("@moble", dt.Rows[i][2].ToString());
}
else
{
arParams[3] = new SqlParameter("@moble", DBNull.Value); }
if (dt.Rows[i][3].ToString() != "")
{
arParams[4] = new SqlParameter("@Phone", dt.Rows[i][3].ToString());
}
else
{
arParams[4] = new SqlParameter("@Phone", DBNull.Value); }
if (dt.Rows[i][4].ToString() != "")
{
arParams[5] = new SqlParameter("@Address", dt.Rows[i][4].ToString());
}
else
{
arParams[5] = new SqlParameter("@Address", DBNull.Value); }
if (dt.Rows[i][5].ToString() != "0")
{
arParams[6] = new SqlParameter("@Funds", dt.Rows[i][5].ToString());
}
else
{
arParams[6] = new SqlParameter("@Funds", DBNull.Value); }
if (dt.Rows[i][6].ToString() != "0")
{
arParams[7] = new SqlParameter("@Funds2", dt.Rows[i][6].ToString());
}
else
{
arParams[7] = new SqlParameter("@Funds2", DBNull.Value); }
if (dt.Rows[i][7].ToString() != "0")
{
arParams[8] = new SqlParameter("@Credential", dt.Rows[i][7].ToString());
}
else
{
arParams[8] = new SqlParameter("@Credential", DBNull.Value); }
if (dt.Rows[i][8].ToString() != "")
{
arParams[9] = new SqlParameter("@Credit", dt.Rows[i][8].ToString());
}
else
{
arParams[9] = new SqlParameter("@Credit", DBNull.Value); } if (dt.Rows[i][9].ToString() != "")
{
arParams[10] = new SqlParameter("@Notes", dt.Rows[i][8].ToString());
}
else
{
arParams[10] = new SqlParameter("@Notes", DBNull.Value); }
arParams[11] = new SqlParameter("@creat_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
arParams[12] = new SqlParameter("@Status","1");
SqlHelper.ExecuteNonQuery(tran, CommandType.Text, InsertSQL, arParams);
}
tran.Commit();
return Num;
}
catch (Exception ex)
{
tran.Rollback();
return -1;
}
finally
{
con.Close();
}
return Num;
}
}
}[/code]
...我这个读取excel表格里的数据并插入数据库,他不读取第一行的excel数据,只要第一行有十列就行...从第二行开始读...
现在这个很麻烦,不是所有excel第一行都有10行...怎么办,如果不是10行他就暴错...
try
{
for (int i = 1; i < dt.Rows.Count;i++ )
{
Num = Num + 1;
SqlParameter[] arParams = new SqlParameter[13];
if (dt.Rows[i][0].ToString()!="")
{
arParams[1] = new SqlParameter("@username", dt.Rows[i][0].ToString());
}
else {
arParams[1] = new SqlParameter("@username",DBNull.Value );
} if (dt.Rows[i][1].ToString() != "")
{
arParams[2] = new SqlParameter("@sex", dt.Rows[i][1].ToString());
}
else
{
arParams[2] = new SqlParameter("@sex", DBNull.Value);
} if (dt.Rows[i][2].ToString() != "0")
{
arParams[3] = new SqlParameter("@moble", dt.Rows[i][2].ToString());
}
else
{
arParams[3] = new SqlParameter("@moble", DBNull.Value); }
if (dt.Rows[i][3].ToString() != "")
{
arParams[4] = new SqlParameter("@Phone", dt.Rows[i][3].ToString());
}
else
{
arParams[4] = new SqlParameter("@Phone", DBNull.Value); }
if (dt.Rows[i][4].ToString() != "")
{
arParams[5] = new SqlParameter("@Address", dt.Rows[i][4].ToString());
}
else
{
arParams[5] = new SqlParameter("@Address", DBNull.Value); }
if (dt.Rows[i][5].ToString() != "0")
{
arParams[6] = new SqlParameter("@Funds", dt.Rows[i][5].ToString());
}
else
{
arParams[6] = new SqlParameter("@Funds", DBNull.Value); }
if (dt.Rows[i][6].ToString() != "0")
{
arParams[7] = new SqlParameter("@Funds2", dt.Rows[i][6].ToString());
}
else
{
arParams[7] = new SqlParameter("@Funds2", DBNull.Value); }
if (dt.Rows[i][7].ToString() != "0")
{
arParams[8] = new SqlParameter("@Credential", dt.Rows[i][7].ToString());
}
else
{
arParams[8] = new SqlParameter("@Credential", DBNull.Value); }
if (dt.Rows[i][8].ToString() != "")
{
arParams[9] = new SqlParameter("@Credit", dt.Rows[i][8].ToString());
}
else
{
arParams[9] = new SqlParameter("@Credit", DBNull.Value); } if (dt.Rows[i][9].ToString() != "")
{
arParams[10] = new SqlParameter("@Notes", dt.Rows[i][8].ToString());
}
else
{
arParams[10] = new SqlParameter("@Notes", DBNull.Value); }
arParams[11] = new SqlParameter("@creat_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
arParams[12] = new SqlParameter("@Status","1");
SqlHelper.ExecuteNonQuery(tran, CommandType.Text, InsertSQL, arParams);
}
tran.Commit();
return Num;
}
catch (Exception ex)
{
tran.Rollback();
return -1;
}
finally
{
con.Close();
}
return Num;
}
}
}[/code]
...我这个读取excel表格里的数据并插入数据库,他不读取第一行的excel数据,只要第一行有十列就行...从第二行开始读...
现在这个很麻烦,不是所有excel第一行都有10行...怎么办,如果不是10行他就暴错...
{
string ExcelPath = OpenFile();
DataTable dt = new DataTable();
OleDbConnection conn = excelConn(ExcelPath);
try
{
string tableName = getFirsttableName(ExcelPath);
conn.Open();
string strCom = " SELECT * FROM [" + tableName + "]";///SQL操作语句,就是说:取得所有数据从Content
OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, conn);
DataSet myDataSet = new DataSet();///建立新的数据集myDataSet
myCommand.Fill(myDataSet);///填充数据集 dt = myDataSet.Tables[0];//Exceltable
Int32 columnNum = myDataSet.Tables[0].Columns.Count;///读取列数并赋值给columnNum
Int32 rowNum = myDataSet.Tables[0].Rows.Count;///读取行数并赋值给rowNum Int32 resultRowNum = columnNum - 1;///读取结果行数
}
catch (System.Exception e)
{ MessageBox.Show("Read Excel is Error!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
System.Environment.Exit(0);
}
finally
{
conn.Close();
}
return dt;
}
这代码操作excel的.看下哪里出错了,只读取第一行判断了?
就是从最上面发的代码里暴的
InsertSQL = "INSERT INTO Applet ([username],[sex],[moble],[Phone],[Address],[Funds],[Funds2],[Credential],[Credit],[Notes],[creat_time],[Status]) VALUES (@username,@sex,@moble,@Phone,@Address,@Funds,@Funds2,@Credential,@Credit,@Notes,@creat_time,@Status)";
try
{
if(dt.Cells.Count!=10)
{
MessageBox.Show("Excel文件没有10列");
return -1;
}
for (int i = 1; i < dt.Rows.Count;i++ )
{
Num = Num + 1;
SqlParameter[] arParams = new SqlParameter[13];
if (dt.Rows[i][0].ToString()!="")
{
arParams[1] = new SqlParameter("@username", dt.Rows[i][0].ToString());
}
else {
arParams[1] = new SqlParameter("@username",DBNull.Value );
} if (dt.Rows[i][1].ToString() != "")
{
arParams[2] = new SqlParameter("@sex", dt.Rows[i][1].ToString());
}
else
{
arParams[2] = new SqlParameter("@sex", DBNull.Value);
} if (dt.Rows[i][2].ToString() != "0")
{
arParams[3] = new SqlParameter("@moble", dt.Rows[i][2].ToString());
}
else
{
arParams[3] = new SqlParameter("@moble", DBNull.Value); }
if (dt.Rows[i][3].ToString() != "")
{
arParams[4] = new SqlParameter("@Phone", dt.Rows[i][3].ToString());
}
else
{
arParams[4] = new SqlParameter("@Phone", DBNull.Value); }
if (dt.Rows[i][4].ToString() != "")
{
arParams[5] = new SqlParameter("@Address", dt.Rows[i][4].ToString());
}
else
{
arParams[5] = new SqlParameter("@Address", DBNull.Value); }
if (dt.Rows[i][5].ToString() != "0")
{
arParams[6] = new SqlParameter("@Funds", dt.Rows[i][5].ToString());
}
else
{
arParams[6] = new SqlParameter("@Funds", DBNull.Value); }
if (dt.Rows[i][6].ToString() != "0")
{
arParams[7] = new SqlParameter("@Funds2", dt.Rows[i][6].ToString());
}
else
{
arParams[7] = new SqlParameter("@Funds2", DBNull.Value); }
if (dt.Rows[i][7].ToString() != "0")
{
arParams[8] = new SqlParameter("@Credential", dt.Rows[i][7].ToString());
}
else
{
arParams[8] = new SqlParameter("@Credential", DBNull.Value); }
if (dt.Rows[i][8].ToString() != "")
{
arParams[9] = new SqlParameter("@Credit", dt.Rows[i][8].ToString());
}
else
{
arParams[9] = new SqlParameter("@Credit", DBNull.Value); } if (dt.Rows[i][9].ToString() != "")
{
arParams[10] = new SqlParameter("@Notes", dt.Rows[i][8].ToString());
}
else
{
arParams[10] = new SqlParameter("@Notes", DBNull.Value); }
arParams[11] = new SqlParameter("@creat_time", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
arParams[12] = new SqlParameter("@Status","1");
SqlHelper.ExecuteNonQuery(tran, CommandType.Text, InsertSQL, arParams);
}
tran.Commit();
return Num;
}
catch (Exception ex)
{
tran.Rollback();
return -1;
}
finally
{
con.Close();
}
return Num;
}
}
}
{
if (dt.Rows[i][8].ToString() != "")
{
arParams[9] = new SqlParameter("@Credit", dt.Rows[i][8].ToString());
}
else
{
arParams[9] = new SqlParameter("@Credit", DBNull.Value); } }
catch (System.Exception e)
{
arParams[9] = new SqlParameter("@Credit", DBNull.Value); }一个一个的捕获就好了啊就不会跳过了 同样添加