/// 说明:updata主要用于新增,修改,删除!
/// 参数:sqlstr是SQL语句!
/// </summary>
public Boolean updata(string sqlstr)
{
SqlConnection con = new SqlConnection()
SqlCommand com = new SqlCommand()
con.ConnectionString ="server=.\SQLEXPRESSdatabase=sp_serverdbintegrated security=SSPI"
com.CommandText = sqlstr
com.Connection = con
try
{
con.Open()
com.ExecuteNonQuery()
con.Close()
return true
}
catch (Exception)
{
con.Close()
return false
}
}
myAdpt.Fill(DataSet1, "1")DataGridView1.DataSource = DataSet1.Tables("学生表")
这两句是有关系的
改成这样
myAdpt.Fill(DataSet1, "1")
DataGridView1.DataSource = DataSet1.Tables("1")
如果没有则插入;
如果存在则更新;
这要分为两种情况来看。
一、如果对数据有个大概的范围,且这个范围在原数据库中的数据量相对较小时,那么可按如下处理:
先将数据库这一范围的数据读入到一个DataTable中,将Excel中的数据逐条更新到这个DataTable中(查找DataTable,如果没有,则添加一行,如果存在,则更新)
然后对前面的DataTable写一个批量更新的过程。
这样的更新数据库时是最快的。
二、如果没有一个大概的范围,并且原数据库的数据非常多时,则前述的方法就不好了。这时可根据Excel中的关键字段将影响的数据从数据库中查询出来,然后再按第一种处理办法来做,这样应该是比较快的。但这种办法对于Excel中的数据较多时就有问题了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)