将记录插入数据库 [英] Insert records to database
问题描述
hi!
我将大量数据插入到我的数据库中。它抛出此错误:对象引用未设置为对象的实例。这是我用于插入数据的代码: -
private
void saveToolStripButton_Click( object sender,
EventArgs e)
< p style ="margin-bottom:0in; margin-bottom:.0001pt; line-height:normal; text-autospace:none">
<跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
{
尝试
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
{
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
使用(cmd = new
SqlCommand (" Insert Into PropertyAssign(Desposition,DateIssued,PropertyID,Description,ModelNbr,SerialNbr,TagNbr,IssCondition,EmpID,eName,Hired ,empStatus)值(@desposition,@ IsDate,
@AssetID,@ description,@ model,@ serial,@ tag,@ state,@ EID,@ name,@ HDate,@ Status)" ,con))
for ( int i = 0; i< dataGridView1.Rows.Count; i ++)
<跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
{
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
// cmd.Parameters.Clear();
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters.Add( new
SqlParameter ( " @desposition" ,System.Data。 SqlDbType .NVarChar,21,
"Desposition"));
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters.Add( new
SqlParameter ( " @ IsDate" ,System.Data。 SqlDbType .Date,3,
" DateIssued" ));
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters.Add( new
SqlParameter ( " @ AssetID" ,System.Data。 SqlDbType .NVarChar,16,
" PropertyID" ));
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters.Add( new
SqlParameter ( " @ description" ,System.Data。 SqlDbType .NVarChar,100,
" Description" ));
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters.Add( new
SqlParameter ( " @ model" ,System.Data。 SqlDbType .NVarChar,21,
" ModelNbr" ));
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters.Add( new
SqlParameter ( " @ serial" ,
SqlDbType .NVarChar,21," SerialNbr" ));
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters.Add( new
SqlParameter ( " @ tag" ,
SqlDbType .NVarChar,21," TagNbr" ));
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters.Add( new
SqlParameter ( " @ state" ,System.Data。 SqlDbType .NVarChar,21,
" IssCondition" ));
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters.Add( new
SqlParameter ( " @ EID" ,System.Data。 SqlDbType .NVarChar,16,
" EmpID" ));
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters.Add( new
SqlParameter ( " @ Name" ,System.Data。 SqlDbType .NVarChar,50,
" eName" ));
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters.Add( new
SqlParameter ( " @@ HDate" ,System.Data。 SqlDbType .Date,3,
" Hired" ));
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters.Add( new
SqlParameter ( " @ Status" ,System.Data。 SqlDbType .NVarChar,21,
" empStatus" ));
<跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;
cmd.Parameters [" @ desposition" ]。Value = dataGridView1.Rows [i] .Cells [" Column1" ]。Value.ToString();
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters [" @ IsDate" ]。Value = dataGridView1.Rows [i] .Cells [" Column2" ]。Value.ToString();
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters [" @ AssetID" ]。Value = dataGridView1.Rows [i] .Cells [" Column3" ]。Value.ToString();
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters [" @ description" ]。Value = dataGridView1.Rows [i] .Cells [" Column4" ]。Value.ToString();
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters [" @ model" ]。Value = dataGridView1.Rows [i] .Cells [" Column5" ]。Value.ToString();
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters [" @ serial" ]。Value = dataGridView1.Rows [i] .Cells [" Column6" ]。Value.ToString();
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters [ " @ tag" ]。Value = dataGridView1.Rows [i] .Cells [" Column7" ]。Value.ToString();
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters [" @ state" ]。Value = dataGridView1.Rows [i] .Cells [" Column8" ]。Value.ToString();
;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters [" @ EID" ]。Value = maskedEmpIDTextBox.Text;
<跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;
cmd.Parameters [" @ Name" ]。Value = EmpNameTextBox.Text;
<跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;
cmd.Parameters [" @ HDate" ]。Value = HiredateTimePicker.Value.ToString(" dd / MM / yyyy" );
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.Parameters [" @ Status" ]。Value = cmbStatus.Text;
的 <跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
con.Open();
  ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
cmd.ExecuteNonQuery();
  ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
con.Close();
  ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
}
}
的 <跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
catch (例外 ex)
{
&NBSP;&NBSP;&NBSP;&NBSP;
MessageBox .Show(ex.Message);
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
}
的 <跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
最后
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
{
的 <跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;&NBSP;
if (con.State ==
ConnectionState 。打开)
<跨度风格= "字体大小:9.5pt;字型家族:索拉"> <跨度>&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP ;
{
&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
con.Close();
  ;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;&NBSP;
}
}
}
请给我你的建议,以便解决我的问题。提前谢谢..
你好,
你的任务在哪里连接?
con.Open() ;
---- -
添加 参数 在第二个循环中,肯定会导致错误。
-----
连接你可以在开始循环之前打开()和关闭() - 之后。
hi!
I am inserting in bulk of datas to my database. It throws this error: Object reference not set to an instance of object. Here's my code i used to insert data:-
private void saveToolStripButton_Click(object sender, EventArgs e)
{
try
{
using (cmd = new SqlCommand("Insert Into PropertyAssign(Desposition, DateIssued, PropertyID, Description, ModelNbr, SerialNbr, TagNbr, IssCondition, EmpID, eName, Hired, empStatus)Values(@desposition, @IsDate, @AssetID, @description, @model, @serial, @tag, @state, @EID, @Name, @HDate, @Status)", con))
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
//cmd.Parameters.Clear();
cmd.Parameters.Add(new SqlParameter("@desposition", System.Data.SqlDbType.NVarChar, 21, "Desposition"));
cmd.Parameters.Add(new SqlParameter("@IsDate", System.Data.SqlDbType.Date,3, "DateIssued"));
cmd.Parameters.Add(new SqlParameter("@AssetID", System.Data.SqlDbType.NVarChar, 16, "PropertyID"));
cmd.Parameters.Add(new SqlParameter("@description", System.Data.SqlDbType.NVarChar, 100, "Description"));
cmd.Parameters.Add(new SqlParameter("@model", System.Data.SqlDbType.NVarChar, 21, "ModelNbr"));
cmd.Parameters.Add(new SqlParameter("@serial", SqlDbType.NVarChar, 21, "SerialNbr"));
cmd.Parameters.Add(new SqlParameter("@tag", SqlDbType.NVarChar, 21, "TagNbr"));
cmd.Parameters.Add(new SqlParameter("@state", System.Data.SqlDbType.NVarChar, 21, "IssCondition"));
cmd.Parameters.Add(new SqlParameter("@EID", System.Data.SqlDbType.NVarChar, 16, "EmpID"));
cmd.Parameters.Add(new SqlParameter("@Name", System.Data.SqlDbType.NVarChar, 50, "eName"));
cmd.Parameters.Add(new SqlParameter("@HDate", System.Data.SqlDbType.Date, 3, "Hired"));
cmd.Parameters.Add(new SqlParameter("@Status", System.Data.SqlDbType.NVarChar, 21, "empStatus"));
cmd.Parameters["@desposition"].Value = dataGridView1.Rows[i].Cells["Column1"].Value.ToString();
cmd.Parameters["@IsDate"].Value = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
cmd.Parameters["@AssetID"].Value = dataGridView1.Rows[i].Cells["Column3"].Value.ToString();
cmd.Parameters["@description"].Value = dataGridView1.Rows[i].Cells["Column4"].Value.ToString();
cmd.Parameters["@model"].Value = dataGridView1.Rows[i].Cells["Column5"].Value.ToString();
cmd.Parameters["@serial"].Value = dataGridView1.Rows[i].Cells["Column6"].Value.ToString();
cmd.Parameters["@tag"].Value = dataGridView1.Rows[i].Cells["Column7"].Value.ToString();
cmd.Parameters["@state"].Value = dataGridView1.Rows[i].Cells["Column8"].Value.ToString();
cmd.Parameters["@EID"].Value = maskedEmpIDTextBox.Text;
cmd.Parameters["@Name"].Value = EmpNameTextBox.Text;
cmd.Parameters["@HDate"].Value = HiredateTimePicker.Value.ToString("dd/MM/yyyy");
cmd.Parameters["@Status"].Value = cmbStatus.Text;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
if (con.State == ConnectionState.Open)
{
con.Close();
}
}
}
please give me your suggestion so as to resolve my problem. Thank you in advance..
Hello,
Where is your assignment for connection?
con.Open();
-----
Adding parameters on the second loop definitely will cause an error.
-----
Connection you can Open() before starting the loop and Close() - after.
这篇关于将记录插入数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!