c#程序问题

namespace数据库_数据适配器dataadapter_更新数据源{publicpartialclassForm1:Form{publicForm1(){Initia... namespace 数据库_数据适配器dataadapter_更新数据源
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
SqlConnection conn;
DataSet ds;
SqlDataAdapter sda;
private void Form1_Load(object sender, EventArgs e)
{
// TODO: 这行代码将数据加载到表“firstDataSet.T1”中。您可以根据需要移动或移除它。
this.t1TableAdapter.Fill(this.firstDataSet.T1);
conn = new SqlConnection("server=;database=first;uid=sa;pwd=sa;");
conn.Open();
SqlCommand cmd = new SqlCommand("select*from T1", conn);
sda = new SqlDataAdapter();
sda.SelectCommand = cmd;
ds = new DataSet();
sda.Fill(ds, "T1");
dataGridView1.DataSource = ds.Tables[0];
}

private void 修改_Click(object sender, EventArgs e)
{
DataTable dt = ds.Tables["T1"];
sda.FillSchema(dt, SchemaType.Mapped);
DataRow dr = dt.Rows.Find(txtNo.Text);
dr["姓名"] = txtName.Text.Trim();
dr["性别"] = this.txtSex.Text.Trim();
dr["年龄"] = this.txtAge.Text.Trim();
dr["奖金"] = this.txtJJ.Text.Trim();
SqlCommandBuilder cmdbuider = new SqlCommandBuilder(sda);
sda.Update(dt);
}

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
txtNo.Text = dataGridView1.SelectedCells[0].Value.ToString();
txtName.Text = dataGridView1.SelectedCells[1].Value.ToString();
txtSex.Text=dataGridView1.SelectedCells[0].Value.ToString();
txtSex.Text=dataGridView1.SelectedCells[0].Value.ToString();
txtAge.Text=dataGridView1.SelectedCells[0].Value.ToString();
txtJJ.Text=dataGridView1.SelectedCells[0].Value.ToString();
请问一下到底哪里出错了呢?
程序运行总是报错说当前上下文不存在名称“txtNo”。
而我这些代码是照书上抄的到底有什么问题拿?
还有,sda.Fill(ds,"cs");中的cs是什么呢,是一个数据表名吗?还是什么?
谢谢大家的解答,感激不尽
展开
 我来答
给世界一些震撼
2010-08-12 · TA获得超过1656个赞
知道小有建树答主
回答量:1011
采纳率:0%
帮助的人:723万
展开全部
1、txtNo 应该是一个 TextBox,你拖 6个TextBox到Form1 上,然后把它们的Name改成 代码中对应的name。

2、sda.Fill(ds,"cs");中的cs 是用于表映射的源表的名称。

你可以这样访问:ds.Tables["cs"]

MSDN 解释:
Fill 方法使用 SELECT 语句从数据源中检索数据。与 Select 命令关联的 IDbConnection 对象必须有效,但不需要将其打开。如果调用 Fill 之前 IDbConnection 已关闭,则将其打开以检索数据,然后再将其关闭。如果调用 Fill 之前连接已打开,它将保持打开状态。

如果命令不返回任何行,则不向 DataSet 中添加表,并且不引发异常。

如果 DbDataAdapter 对象在填充 DataTable 时遇到重复列,它将以“columnname1”、“columnname2”、“columnname3”这样依次排序的模式命名后面的列。如果传入数据包含未命名的列,它们将按“Column1”、“Column2”的模式放在 DataSet 中。

当指定的查询返回多项结果时,每个结果集都放置在单独的表中。将整数值追加到指定的表名从而对其他结果集进行命名(例如“Table”、“Table1”、“Table2”等)。如果某个查询不返回行,则不会为该查询创建表,因此,如果您先处理一个插入查询,然后再处理一个选择查询,那么由于为选择查询创建的表是第一个表,所以该表将被命名为“Table”。使用列名和表名的应用程序应确保一定不要与这些命名模式发生冲突。

Fill 方法支持以下情况:DataSet 包含多个 DataTable 对象,而这些对象的名称只有大小写不同。在这种情况下,Fill 执行区分大小写的比较以查找相应的表,如果不存在完全匹配的表,则新建一个。下面的 C# 代码阐释该行为。
鲜少老师
2010-08-12 · TA获得超过528个赞
知道小有建树答主
回答量:630
采纳率:0%
帮助的人:393万
展开全部
txtNO 是一个textbox控件,你页面上把texbox名改成txtNO就可以了,cs是一个表名。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hhyqn
2010-08-11 · TA获得超过2138个赞
知道小有建树答主
回答量:1836
采纳率:0%
帮助的人:442万
展开全部
txtNo 是什么啊,窗体设计器中的某个控件??

CS就是给填充到DATASET中的表指定一个表名!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gdutwzh
2010-08-11 · TA获得超过153个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:137万
展开全部
txtNO 应该是一个textbox控件,是号码(职工编号、学号?)的。cs是一个表名。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangbenson
2010-08-12 · TA获得超过161个赞
知道答主
回答量:283
采纳率:0%
帮助的人:197万
展开全部
txtNo应该是控件,是不是没有id为txtNo的控件存在?
看着数据更新没有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式