none
DataTable类的DataTable.RowChanged 事件该如何理解? RRS feed

  • 问题

  •  C#Winform中有没有这样的控件?
      在控件中有类似于excel表格式,固定在那,
    当在首列中的第一个单元格输入数据,在首行中的第2,3,4……n列中显示相关数据?
    当在首列中的第二个单元格输入数据,在第二行的第2,3,4……n列中显示相关数据?
    ……………………………………………………………………………………………………
    当在首列中的第N个单元格输入数据,在第N行的第2,3,4……n列中显示相关数据?

    这样当输完所有数据,但凡输入数据的行都显示了数据?
    请给出控件和相关代码示例,谢谢


    构建一个DataTable,N行*N列都是空的,然后在首列的相关行输入数据,根据这个数据调用一存储过程(只有一个参数),
    根据存储过程返回另一个表格的结构,将这个表的结构的Rows[i].Cells[j]添加到构建表的相关Rows[i].Cells[j]中?

    根据提示调用DataTable.RowChanged事件,但这个事件的意思看不懂,MSDN上的例子也是一知半解,请MVP赐教,给出代码提示,和相关结果,最好有注释,谢谢

    2009年11月2日 9:14

答案

  • 你是打算录入一个出入库表单吧?

    如果你这样做可能会简单一点。

    在 DataGridView 下方拖放两个 TextBox (TextBox1输入编号,TexBox2 输入数量)控件。

    TextBox1 的 KeyDown 事件中判断是否输入回车,如是即将 TextBox2 设为信点, TextBox2.Text 默认为 1。
    TextBox2 的 KeyDown 事件中判断是否输入回车,如是即读取产品信息加往 DataGridView 绑定的 DataTable 中添加详细的数据。焦点回到 TextBox 1 并重置两个 TextBox  的 Text 属性。

    如此反复就完成了一张表单。

    知识改变命运,奋斗成就人生!
    2009年11月3日 1:19
    版主

全部回复

  • 比如 你有一行 Id = 2; Name = "John", 你将这行的 Name 改为 "Sam" 就会触发这个事件。
    知识改变命运,奋斗成就人生!
    2009年11月2日 9:22
    版主
  • XXY版主,空表格偶构建好了,在dataGridView控件中也有相关的excel表的格式了,
    能不能给出这个事件的相关例子和结果哈?

    2009年11月2日 9:28
  • 在添加一行、修改一行、提交修改等都会fire的
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!My blog~~~
    2009年11月2日 9:29
    版主
  • 你是想将这个表格的数据保存下来是吧? 如果是可以用 DataTable.GetChanges() 获取变化的数据,然后通过 SqlDataAdapter.Update() 方法将数据更新到数据库中。
    知识改变命运,奋斗成就人生!
    2009年11月2日 9:40
    版主
  • 比如说我得到的一个空表格(ICBOM),里面没有任何数据,DataGridView控件里的数据源就是ICBOM
    DataGridView.DataSource=ds.Tables[0]
    这样在运行Form控件后就有一个类似Excel表的形式了……
    那么当我在DataGridView.Rows[0].Cells[1] 输入一数据'7.01.01.01.0021',根据这个数据调用存储过程"t_BOM1",
    存储过程:
    create proc t_BOM1(@FFullNumber varchar(40))
    as
    select FInterID,FParentID,FName  from ICBOM 
    where FFullNumber=@FFullNumber
    当我在DataGridView.Rows[0].Cells[1]输入数据'7.01.01.01.0021'后,根据这个物料代码(FFullNumber)调用存储过程"t_BOM1",
    在DataGridView.Rows[0].Cells[2]中显示FInterID,
    在DataGridView.Rows[0].Cells[3]中显示FParentID,
    在DataGridView.Rows[0].Cells[4]中显示FName

    当我在DataGridView.Rows[1].Cells[1]输入数据'7.01.01.01.0031'后,根据这个物料代码(FFullNumber)调用存储过程"t_BOM1",
    在DataGridView.Rows[1].Cells[2]中显示FInterID,
    在DataGridView.Rows[1].Cells[3]中显示FParentID,
    在DataGridView.Rows[1].Cells[4]中显示FName

    …………………………………………

    当我在DataGridView.Rows[N].Cells[1]输入数据'7.01.01.01.0031'后,根据这个物料代码(FFullNumber)调用存储过程"t_BOM1",
    在DataGridView.Rows[N].Cells[2]中显示FInterID,
    在DataGridView.Rows[N].Cells[3]中显示FParentID,
    在DataGridView.Rows[N].Cells[4]中显示FName


    当所有的输完后,就有N行的数据了……不知道该如何实现?


       
    2009年11月2日 15:24
  • 你是打算录入一个出入库表单吧?

    如果你这样做可能会简单一点。

    在 DataGridView 下方拖放两个 TextBox (TextBox1输入编号,TexBox2 输入数量)控件。

    TextBox1 的 KeyDown 事件中判断是否输入回车,如是即将 TextBox2 设为信点, TextBox2.Text 默认为 1。
    TextBox2 的 KeyDown 事件中判断是否输入回车,如是即读取产品信息加往 DataGridView 绑定的 DataTable 中添加详细的数据。焦点回到 TextBox 1 并重置两个 TextBox  的 Text 属性。

    如此反复就完成了一张表单。

    知识改变命运,奋斗成就人生!
    2009年11月3日 1:19
    版主
  • 老师能否给个代码示例啊?看不明白````

    2009年11月3日 2:11