小白求指点迷津,我总有些乱七八糟的想法。

丿俗人 2013-12-01 09:17:53
实验:调用数据库中两张列数不同的两张数据表,测试1,测试2。窗体上有一个butto,两个datagridview;
目的:使用数据库的updata对数据库进行强制更新测试。
【想法】
那天我写了一个通过修改datagrowview界面里数据对数据库中的数据进行修改;
其中代码有一段是这样的


------------string str = "select * from 学生信息表";
DataTable tb = new DataTable();
adter = new SqlDataAdapter();//adter是一个公共变量名
tb = stbl2(str);
tb = (DataTable)dataGridView1.DataSource;
try
{
conn.Open();
SqlCommandBuilder bud = new SqlCommandBuilder(this.adter);
adter.Update(tb);
this.conn.Close();
}
catch
{
MessageBox.Show("更新失败");

}
---------------

private DataTable stbl2(string shuru)
{
conn.Open();
this.adter = new SqlDataAdapter(shuru, conn);
DataTable test = new DataTable();
adter.Fill(test);
conn.Close();
return test;
}

-----------
因为数据库老师也还没讲到,所以里面这些个东西都是自己学。接下来我写下我自己的理解希望各位前辈能帮我纠正下里面很多的错误。
namespace WindowsFormsApplication4
{
public partial class Form1 : Form
{
public string 连接字符 = "server=PC-20130904BZEI;database=test;integrated security=true";
SqlConnection conn;

string 查询测试表1 = "select * from 测试1";
string 查询测试表2 = "select * from 测试2";
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
conn = new SqlConnection(连接字符);
conn.Open();
SqlDataAdapter 适配器1 = new SqlDataAdapter(查询测试表1, conn);
SqlDataAdapter 适配器2 = new SqlDataAdapter(查询测试表2, conn);

DataSet 获取器1 = new DataSet();
DataSet 获取器2 = new DataSet();

适配器1.Fill(获取器1); 适配器2.Fill(获取器2);
SqlCommandBuilder 设计器1 = new SqlCommandBuilder(适配器1);
SqlCommandBuilder 设计器2 = new SqlCommandBuilder(适配器2);
适配器1.Update(获取器2);
适配器2.Update(获取器1);
conn.Close();



}




}


【其实我总结一个问题就是,是通过Sqlcommandbuider 和 sqldataadapte 将表通过updata重新写到数据库里面去,在同一张表里面是吧这张dataset里的虚拟的表又写入到数据表里面吧,那么如果这个dataset来自于别的数据表呢? 】
【我自己都被自己说糊涂了。前辈们估计也看不懂我表达的,那么行行好跟我解说下您是如何去理解ado.net里面那几个东西 跟我说道说道吧】
...全文
85 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
丿俗人 2013-12-01
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
使用DataAdapter更新数据的时候,会自动判断主键,也就是说,只要主键对上了,那么内存中的数据就会更新对应数据库的数据。如果你的表没有主键,是不能更新的。
原来是这样喔。
threenewbee 2013-12-01
  • 打赏
  • 举报
回复
使用DataAdapter更新数据的时候,会自动判断主键,也就是说,只要主键对上了,那么内存中的数据就会更新对应数据库的数据。如果你的表没有主键,是不能更新的。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧