错误!你调用的对象是空的! [英] Error! Object reference not set to an instance of an object!
问题描述
我在项目窗体上有一个DataGridView.
第一步;我可以从.csv文件传输到DataGridView.我用openFileDialog选择.csv文件.并将数据从.csv文件传输到dataGridViw.
而且还可以.我可以做的第一步.
第二步;我想根据C#中datagridview上的数据在数据库上创建一个新表.
因此,我想将数据从DataGridView导入到Sql Server.
我写了一些东西,但有一个错误.
错误消息是:
对象引用未设置为对象的实例
空引用异常未处理
在这条线上:
Hi,
I have a DataGridView on form of my project.
First step; I can transfer from .csv files to DataGridView. I choose .csv file with openFileDialog. And data transfer from .csv files to dataGridViw.
And It is okay. I can do first step.
Second step; i want to create a new table on my Database according to data on my datagridview in C#.
So, I want to import my data from DataGridView to Sql Server.
I wrote something but i have an error.
Error message is:
object reference not set to an instance of an object
null reference exception was unhandled
on this line:
string valueData = dataGridViewScanner.Rows[i].Cells[j].Value.ToString();
有人可以检查我的代码吗?
谢谢.
Could someone check my code please?
Thank you.
<pre lang="c#"> private void btnTransferSqlFromDataGrid_Click(object sender, EventArgs e)
{
SqlConnection sqlConn = new SqlConnection();
string connStr = "Data Source=PCSELIN;Initial Catalog=OptimaHucreVerileriIzlemeProjesi;Integrated Security=True";
sqlConn.ConnectionString = connStr;
sqlConn.Open();
ArrayList aList = new ArrayList();
//string tableName = Microsoft.VisualBasic.Interaction.InputBox("Database''de oluşturmak istediğiniz tablo adını giriniz");
//for (int i = 0; i < dataGridViewScanner.Rows.Count; i++ ) {
string tableName = txtTableName.Text;
for (int i = 0; i < dataGridViewScanner.Rows.Count; i++)
{
for (int j = 0; j < dataGridViewScanner.Rows[i].Cells.Count; j++)
{
string valueData = dataGridViewScanner.Rows[i].Cells[j].Value.ToString();
aList.Add(valueData);
}
}
ClsInsertDatabase ins = new ClsInsertDatabase();
ins.insertData(aList,tableName);
}
}
}
public void insertData(ArrayList aList,string table) {
SqlConnection sqlConn = new SqlConnection();
sqlConn.ConnectionString = "Data Source=PCSELIN;Initial Catalog=OptimaHucreVerileriIzlemeProjesi;Integrated Security=True";
sqlConn.Open();
string degiskenBildirimi = "";
for (int i = 0; i < aList.Count - 1;i++ ) {
if (i == 0)
{
degiskenBildirimi += "@" + (i+1);
}
else {
degiskenBildirimi += ",@" + (i+1);
}
}
string tableName = Path.GetFileName(table);
string sqlCmdCreate = "Create table "+ tableName +" Values("+ degiskenBildirimi +")";
SqlCommand sqlCmd = new SqlCommand(sqlCmdCreate, sqlConn);
<pre lang="cs">for (int j = 0; j < aList.Count - 1;j++ ) {
string etIsareti = "@";
SqlParameter sqlParam = new SqlParameter();
//this[j]=
sqlCmd.Parameters.Add(new SqlParameter(etIsareti, aList.Add(j)));
}
try
{
sqlCmd.ExecuteNonQuery();
MessageBox.Show("Veri başarıyla transfer edilmiştir.");
}
catch (Exception ex)
{
MessageBox.Show("Source : " + sqlCmd.ToString() + "Exception : " + ex.Message);
}
finally {
sqlCmd.Dispose();
}
}
推荐答案
尝试一下:
http://www.c-sharpcorner.com/blogs/8387/insert-data-from-gridview-to-database.aspx [
try this:
http://www.c-sharpcorner.com/blogs/8387/insert-data-from-gridview-to-database.aspx[^]
尝试
http://www.c-sharpcorner .com/uploadfile/ankurmee/import-data-from-excel-to-datagridview-in-C-Sharp/ [ http://vb.net-informations.com/datagridview/vb.net_datagridview_import.htm [ ^ ]
视频此处 [
Try
http://www.c-sharpcorner.com/uploadfile/ankurmee/import-data-from-excel-to-datagridview-in-C-Sharp/[^]
http://vb.net-informations.com/datagridview/vb.net_datagridview_import.htm[^]
A video here[^].
Hii,
执行此查询(strTable)以在数据库中创建表,
Hii,
excute this query(strTable) to create a table in database,
protected void btnSave_Click(object sender, EventArgs e)
{
string strTable = "CREATE TABLE tblTest (";
for (int i = 0; i < gvTest.Columns.Count; i++)
{
strTable += gvTest.Columns[i].HeaderText + " VARCHAR(MAX),";
}
strTable = strTable.Substring(0, strTable.Length - 1) + ")";
}
您可以使用如下所示的foreach循环逐行插入
and you can insert row by row by using foreach loop like below
foreach (GridViewRow row in gvCSV.Rows)
{
//excute insert query
}
这篇关于错误!你调用的对象是空的!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!