我有一张excel表,显示了部门员工的工资细节。 我需要将这些细节保存到MySql中。
当我使用oledbdatareader时,它从第一行读取。但我必须从不同的行中选择。下面是im展示样本excel表
Dept Software
Name Gross Deductions NetPay
AAA 10000 2000 8000
BBB 10000 1000 9000
Dept HR
Name Gross Deductions NetPay
CCC 20000 1000 19000
这里每行都是一行。我必须采取第三行,第四行,然后是最后一行(在本例中)。
AAA 10000 2000 8000
BBB 10000 1000 9000
CCC 20000 1000 19000
我怎样才能做到这一点? 我试过这样的。
protected void Button2_Click(object sender, EventArgs e)
{
string path = "C:\\Payslip.xls";
string query = "SELECT * FROM [Sheet3$]";
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source = '" + path + "'" + @";Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;ImportMixedTypes=Text;TypeGuessRows=0""";
conn.Open();
try
{
OleDbCommand ocmd = new OleDbCommand(query, conn);
OleDbDataReader odr = ocmd.ExecuteReader();
while (odr.Read())
{
name = odr[0].ToString();
gross = odr[1].ToString();
ded = odr[2].ToString();
net = odr[3].ToString();
connection = new MySqlConnection(connectionString);
connection.Open();
String sQuery = "insert into salary (EmployeeName, Gross) values(@a, @b)";
MySqlCommand cmd = new MySqlCommand(sQuery, connection);
cmd.Parameters.AddWithValue("a", name);
cmd.Parameters.AddWithValue("b", gross);
cmd.ExecuteNonQuery();
connection.Close();
}
}
catch (Exception ex)
{
Label1.Text = ex.Message;
}
}
答案 0 :(得分:1)
您可以使用OleDbDataAdapter读取所有行以填充数据集。然后在此数据集的数据表中按索引选择一行。使用OleDbDataAdapter的一个例子是,