在一些数据量比较大,而且 *** 作数据库频繁的。此时需要将数据表datatable整块的存入数据库中。
不多说,直接上代码:
首先得新建一个数据库
DataTable once_rec_date = new DataTable()
这个数据库得跟目标数据库的列的位置和大小都得一样。特别是类型,和位置。
就是列的位置和目标数据库的位置,顺序得 一模一样。因为都是块存储,所以地址什么的都得一样,千万不能少一列,自增列可以空在那边。
在初始化中初始化该表
<pre name="code" class="csharp"> once_rec_date.Columns.Add("id", typeof(int))once_rec_date.Columns.Add("RevData_cmd", typeof(int))
once_rec_date.Columns.Add("Node", typeof(int))
once_rec_date.Columns.Add("Data", typeof(String))
once_rec_date.Columns.Add("Ssingle", typeof(int))
once_rec_date.Columns.Add("IsWiressData", typeof(int))
once_rec_date.Columns.Add("Datatime", typeof(DateTime))
once_rec_date.Columns.Add("Receivetime", typeof(DateTime))
once_rec_date.Columns.Add("IsMatch", typeof(int))</pre><br>
<p></p>
<pre></pre>
<span style="font-size:18px">初始化之后,在程序中填充该datatable<br>
</span><br>
<p></p>
<p></p><pre name="code" class="csharp"> DataRow newrow = once_rec_date.NewRow()
newrow["RevData_cmd"] = cmd
newrow["Node"] = Nodeid
newrow["Data"] = datastring
newrow["IsWiressData"] = IsWiress
newrow["Ssingle"] = 1
newrow["Datatime"] = datatime
newrow["Receivetime"] = time1
newrow["IsMatch"] = 3
once_rec_date.Rows.Add(newrow)
return true</pre><br>
再在程序结束的时候调用下面的函数<pre name="code" class="csharp" style="background-color: rgb(255, 255, 255) ">AddDatatableToSQL</pre><p></p>
<p>该函数主要实现块存储,整datatable</p>
<p><br>
</p>
<p></p>
<pre name="code" class="html" style="background-color: rgb(255, 255, 255) font-size: 18px "></pre><pre name="code" class="csharp"> ///-----------------------------------------------------------------*
/// <summary> *
/// 功 能:将数据表批量存入到数据库中 *
/// 函数调用:SqlBulkCopy *
/// </summary> *
/// <param name="frameStruct">数据类型</param> *
///-----------------------------------------------------------------*
public bool AddDatatableToSQL(DataTable ScrTable)
{
using (SqlConnection thisConn = new SqlConnection(ConnectionStr))
{
try
{
if (thisConn.State == ConnectionState.Closed)
{
thisConn.Open()
}
using (SqlBulkCopy bulkCopy = new SqlBulkCopy(thisConn))
{
bulkCopy.DestinationTableName = "RevData"//这里的数据库名字可以更改,或者通过传参传进去.
try
{
bulkCopy.WriteToServer(ScrTable)
return true
}
catch
{
return false
}
finally
{
thisConn.Close()
}
}
}
catch
{
}
}//end using
return false
}
</pre><br>
<p><br>
</p>
在数据库中批量插入数据的方法及其步骤:
1、打开设备中的数据库,并点击数据库页面左边的“编辑前200行”进入其中。
2、在“编辑前200行”的页面中,会显示出表中的列和图中的列是相互对应的几列数据。
3、点击上一步显示出的几列数据,并进行手动数据添加 *** 作。
4、数据添加完毕之后,在表中右击选择执行。
5、执行完毕之后,即成功在数据库中批量插入数据。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)