C# 中的数据库操作 查询数据库中的某一张表,查询出一个DataTable,修改其中的某些值再次添加到原表中,注意是在原有的值上修改后添加到表中,,这个怎么实现呢? 我的思路是这样的, 用户的操作实际是这样的 首先复制操作,然后是粘贴操作,在复制操作时构造一个 Insert 语句,这个语句很多,而且有些量还不确定,在用户粘贴操作时,将不确定的量确定下,执行Insert 语句,请问还有其它方法吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先自己要知道哪些数据是要新增到数据库的,然后用insert去插入,不会就去看msdn或google DataTable tb=new DataTable()tb=..........tb.Rows[n][k]=xxxxxxtb.Rows[i][h]=yyyyyy然后AdPater.Update更新 Adpater 怎么和 DataTable 产生关系呢? 最近 发现 个人 雷人的问题全部出现,你要明确你自己要做什么,DataTable 你还能手动复制 你那是扯淡那。你直接 操作 数据容器,然后 写好 SQL 语句 直接 给参数 ,通过 OLEDB 或 ADO.NET 就操作数据库被,多个 INSERT 放在 Transaction 中处理, 确保数据的 原子性。 DataTable tb=new DataTable()tb=..........原Tabletb.Rows[n][k]=xxxxxxtb.Rows[i][h]=yyyyyy//修改完后OleDbDataAdapter Adapter = new OleDbDataAdapter(); using (OleDbConnection connetion = new OleDbConnection(connectionString)) { Adapter.SelectCommand = new OleDbCommand(SelectString, connetion); OleDbCommandBuilder builder = new OleDbCommandBuilder(Adapter); Adapter.UpdateCommand = builder.GetUpdateCommand(); Adapter.Update(tb); } SqlDataAdapter adapter = new SqlDataAdapter(Sqls, SqlClass.GCon); DataSet data = new DataSet(); adapter.Fill(data); DataTable dt = data.Tables[0];这是我要修改的dt,在粘贴时,确定里面要修改量的值,还有重新 声明一个 adapter 吗? using(SqlConnection cn = new SqlConnection("")){SqlDataAdapter da = new SqlDataAdapter("Select * from Tb ", cn);DataSet ds = new DataSet();cn.Open();da.Fill(ds);cn.Close(); } ds.Tables[0].Rows[0]["Name"] = "";cn.Open();SqlCommandBuilder cmd = new SqlCommandBuilder(da);da.Update(ds.Tables[0]);cn.Close();这样的是正确的吧? 后台获取你这条记录的值,然后再执行一次这个数据的Add方法不就可以了吗? 一个关于文本输出的问题 打印机选择的问题 在c#中使用StreamReader的ReadLine方法是不是会不计算记事本自动添加的换行。 如何转换? 怎么让主进程挂起2秒? 一个DEBUG?在.net 环境下的。那位大哥大姐知道,帮帮忙,谢谢! Dev 嵌套 gridview 行定位问题 请问,在C#中安全代码下取消了指针,那么如何创建树? 一个棘手问题,请帮手 C# 关于制作简单的文本编辑器 新手向 读取html里table的值 如何屏蔽窗体快捷键 比如 WIN + →
tb=..........
tb.Rows[n][k]=xxxxxx
tb.Rows[i][h]=yyyyyy
然后AdPater.Update更新
DataTable 你还能手动复制 你那是扯淡那。你直接 操作 数据容器,然后 写好 SQL 语句 直接 给参数 ,通过 OLEDB 或 ADO.NET 就操作数据库被,多个 INSERT 放在 Transaction 中处理, 确保数据的 原子性。
DataTable tb=new DataTable()
tb=..........原Table
tb.Rows[n][k]=xxxxxx
tb.Rows[i][h]=yyyyyy
//修改完后OleDbDataAdapter Adapter = new OleDbDataAdapter(); using (OleDbConnection connetion = new OleDbConnection(connectionString))
{
Adapter.SelectCommand = new OleDbCommand(SelectString, connetion);
OleDbCommandBuilder builder = new OleDbCommandBuilder(Adapter);
Adapter.UpdateCommand = builder.GetUpdateCommand(); Adapter.Update(tb); }
adapter.Fill(data);
DataTable dt = data.Tables[0];这是我要修改的dt,
在粘贴时,确定里面要修改量的值,还有重新 声明一个 adapter 吗?
using(SqlConnection cn = new SqlConnection(""))
{
SqlDataAdapter da = new SqlDataAdapter("Select * from Tb ", cn);
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds);
cn.Close();
} ds.Tables[0].Rows[0]["Name"] = "";
cn.Open();
SqlCommandBuilder cmd = new SqlCommandBuilder(da);
da.Update(ds.Tables[0]);
cn.Close();
这样的是正确的吧?