从Excel中获取数据到datagridview时,第三个Cell数据(lname)未显示在Datagridview上。 [英] While fetching data from Excel to datagridview third Cell data(lname) not displayed on Datagridview..
本文介绍了从Excel中获取数据到datagridview时,第三个Cell数据(lname)未显示在Datagridview上。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
private void Upload_Excel_click(object sender, EventArgs e)
{
// For Uploading Excel file From Computer
int count = 0;
string[] FilenameName;
foreach (string item in openFileDialog1.FileNames)
{
FilenameName = item.Split('\\');
File.Copy(item, @"Images\" + FilenameName[FilenameName.Length - 1]);
count++;
}
//for storing data from Excel to datagridview
System.Data.OleDb.OleDbConnection MyConnection;
System.Data.DataSet DtSet;
System.Data.OleDb.OleDbDataAdapter MyCommand;
MyConnection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='D:\\Edbeans Windows App Modified\\Edbeans Windows App\\Project\\Registration\\bin\\Debug\\Images\\Book1.xlsx';Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";");
MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection);
MyCommand.TableMappings.Add("ams_records ", "temp_reg_details");
DtSet = new System.Data.DataSet();
MyCommand.Fill(DtSet);
dataGridView1.DataSource = DtSet.Tables[0];
MySqlConnection local_connection = myConnection.getConnection();
local_connection.Open();
string str = this.dataGridView1.Rows.Count.ToString();
int num = int.Parse(str);
for (int row = 0; row < num - 1; row++)
{
string query = "INSERT INTO temp_reg_details(fname, mname, lname, class_code,guard_fname,guard_mname,guard_lname,guard_mob_no,guard_email,rfid_cardNo,rfid_password) VALUES (@fname, @mname, @lname, @class_code, @guard_fname, @guard_mname, @guard_lname, @guard_mob_no, @guard_email, @rfid_cardNo, @rfid_password)";
MySqlCommand cmd = new MySqlCommand(query, local_connection);
cmd.Parameters.AddWithValue(
"@fname", dataGridView1.Rows[row].Cells[1].Value.ToString());
cmd.Parameters.AddWithValue(
"@mname", dataGridView1.Rows[row].Cells[2].Value.ToString());
//Its shows error of NullrefereceException was unhandled(Object reference not set to an instance of an object.) while fetching data from 3rd cell
cmd.Parameters.AddWithValue(
"@lname", dataGridView1.Rows[row].Cells[3].Value.ToString());
//below are working fine
cmd.Parameters.AddWithValue(
"@class_code", dataGridView1.Rows[row].Cells[4].Value.ToString());
cmd.Parameters.AddWithValue(
"@guard_fname", dataGridView1.Rows[row].Cells[5].Value.ToString());
cmd.Parameters.AddWithValue(
"@guard_mname", dataGridView1.Rows[row].Cells[6].Value.ToString());
cmd.Parameters.AddWithValue(
"@guard_lname", dataGridView1.Rows[row].Cells[7].Value.ToString());
cmd.Parameters.AddWithValue(
"@guard_mob_no", dataGridView1.Rows[row].Cells[8].Value.ToString());
cmd.Parameters.AddWithValue(
"@guard_email", dataGridView1.Rows[row].Cells[9].Value.ToString());
cmd.Parameters.AddWithValue(
"@rfid_cardNo", dataGridView1.Rows[row].Cells[10].Value.ToString());
cmd.Parameters.AddWithValue(
"@rfid_password", dataGridView1.Rows[row].Cells[11].Value.ToString());
cmd.ExecuteNonQuery();
cmd.Parameters.Clear(); //for proper looping
}
MessageBox.Show("sucess");
local_connection.Close();
}
推荐答案
,MyConnection);
MyCommand.TableMappings。添加( ams_records, < span class =code-string> temp_reg_details);
DtSet = new System.Data.DataSet();
MyCommand.Fill(DtSet);
dataGridView1.DataSource = DtSet.Tables [ 0 ];
MySqlConnection local_connection = myConnection.getConnection();
local_connection.Open();
string str = 此 .dataGridView1.Rows。 Count.ToString();
int num = int .Parse(str);
for ( int row = 0 ; row < num - 1 ;行++)
{
string query = INSERT INTO temp_reg_details(fname,mname,lname,class_code,guard_fname,guard_mname,guard_lname,guard_mob_no,guard_email,rfid_cardNo,rfid_password)VALUES(@ fname,@ mname,@ lname,@ class_code,@ guard_fname, @guard_mname,@ guard_lname,@ guard_mob_no,@ guard_email,@ rfid_cardNo,@ rfid_password);
MySqlCommand cmd = new MySqlCommand(query,local_connection);
cmd.Parameters.AddWithValue(
@ fname,dataGridView1.Rows [row] .Cells [ 1 ]。Value.ToString());
cmd.Parameters.AddWithValue(
@ mname,dataGridView1.Rows [row] .Cells [ 2 ]。Value.ToString());
// 它显示NullrefereceException错误未处理(对象引用未设置为实例对象。)从第三个单元格中获取数据
cmd.Parameters.AddWithValue(
@ lname,dataGridView1.Rows [row] .Cells [ 3 ]。Value.ToString());
// 以下工作正常
cmd .Parameters.AddWithValue(
@ class_code,dataGridView1.Rows [row] .Cells [ 4 ]。Value.ToString());
cmd.Parameters.AddWithValue(
@ guard_fname,dataGridView1.Rows [row] .Cells [ 5 ]。Value.ToString());
cmd.Parameters.AddWithValue(
@ guard_mname,dataGridView1.Rows [row] .Cells [ 6 ]。Value.ToString());
cmd.Parameters.AddWithValue(
@ guard_lname,dataGridView1.Rows [row] .Cells [ 7 ]。Value.ToString());
cmd.Parameters.AddWithValue(
@ guard_mob_no,dataGridView1.Rows [row] .Cells [ 8 ]。Value.ToString());
cmd.Parameters.AddWithValue(
@ guard_email,dataGridView1.Rows [row] .Cells [ 9 ]。Value.ToString());
cmd.Parameters.AddWithValue(
@ rfid_cardNo,dataGridView1.Rows [row] .Cells [ 10 ]。Value.ToString());
cmd.Parameters.AddWithValue(
@ rfid_password,dataGridView1.Rows [row] .Cells [ 11 ]。Value.ToString());
cmd.ExecuteNonQuery();
cmd.Parameters.Clear(); // 正确循环
}
MessageBox.Show( sucess);
local_connection.Close();
}
", MyConnection); MyCommand.TableMappings.Add("ams_records ", "temp_reg_details"); DtSet = new System.Data.DataSet(); MyCommand.Fill(DtSet); dataGridView1.DataSource = DtSet.Tables[0]; MySqlConnection local_connection = myConnection.getConnection(); local_connection.Open(); string str = this.dataGridView1.Rows.Count.ToString(); int num = int.Parse(str); for (int row = 0; row < num - 1; row++) { string query = "INSERT INTO temp_reg_details(fname, mname, lname, class_code,guard_fname,guard_mname,guard_lname,guard_mob_no,guard_email,rfid_cardNo,rfid_password) VALUES (@fname, @mname, @lname, @class_code, @guard_fname, @guard_mname, @guard_lname, @guard_mob_no, @guard_email, @rfid_cardNo, @rfid_password)"; MySqlCommand cmd = new MySqlCommand(query, local_connection); cmd.Parameters.AddWithValue( "@fname", dataGridView1.Rows[row].Cells[1].Value.ToString()); cmd.Parameters.AddWithValue( "@mname", dataGridView1.Rows[row].Cells[2].Value.ToString()); //Its shows error of NullrefereceException was unhandled(Object reference not set to an instance of an object.) while fetching data from 3rd cell cmd.Parameters.AddWithValue( "@lname", dataGridView1.Rows[row].Cells[3].Value.ToString()); //below are working fine cmd.Parameters.AddWithValue( "@class_code", dataGridView1.Rows[row].Cells[4].Value.ToString()); cmd.Parameters.AddWithValue( "@guard_fname", dataGridView1.Rows[row].Cells[5].Value.ToString()); cmd.Parameters.AddWithValue( "@guard_mname", dataGridView1.Rows[row].Cells[6].Value.ToString()); cmd.Parameters.AddWithValue( "@guard_lname", dataGridView1.Rows[row].Cells[7].Value.ToString()); cmd.Parameters.AddWithValue( "@guard_mob_no", dataGridView1.Rows[row].Cells[8].Value.ToString()); cmd.Parameters.AddWithValue( "@guard_email", dataGridView1.Rows[row].Cells[9].Value.ToString()); cmd.Parameters.AddWithValue( "@rfid_cardNo", dataGridView1.Rows[row].Cells[10].Value.ToString()); cmd.Parameters.AddWithValue( "@rfid_password", dataGridView1.Rows[row].Cells[11].Value.ToString()); cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); //for proper looping } MessageBox.Show("sucess"); local_connection.Close(); }
这篇关于从Excel中获取数据到datagridview时,第三个Cell数据(lname)未显示在Datagridview上。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文