form窗体上有如下控件textboxX1,textboxX2,textboxX3,textboxX4,textboxX5
                    textboxY1,textboxY2,textboxY3,textboxY4,textboxY5
                    textboxName “保存”按钮
                    comboxName,“读取”“删除”,按钮。。
数据库表名为data,有两个表   main表  字段为main_id  自动编号 pk
                                          name      文本
                                          time     now()
                            num表   字段为"编号"   自动编号 pk
                                           x       数字
                                           y       数字
                                           main_id 
                            main表为父表,num表为子表,连接字段为main_id
问题:1。向textboxX1,textboxY1。。textboxX5,textboxY5,输入数字,且向texboxName中输入名称,可以实现数据的存储,texboxName内容存入main表的name字段,textboxX1,textboxY1。。textboxX5,textboxY5存入num表的x,y字段,
      2。从comboxName下拉框选择名称时,点击“读取”,textboxX1,textboxY1。。textboxX5,textboxY5,显示相应的x,y字段的值,textboxName,显示main表的字段name的值。
      3。从comboxName下拉框选择名称时,点击“删除”,则相应的父子表数据被删除。
      4。如果main表,字段name的值有两个同名,怎么处理。
      希望能给出关键程序。

解决方案 »

  1.   

    to 1。向textboxX1,textboxY1。。textboxX5,textboxY5,输入数字,且向texboxName中输入名称,可以实现数据的存储,texboxName内容存入main表的name字段,textboxX1,textboxY1。。textboxX5,textboxY5 存入num表的x,y字段,如果是主子表,你需要建立transaction来保证操作的原子性,或者调用存储过程,即要在主表中进行添加,然后过的main_id,然后再向子表添加记录。
      

  2.   

    to 2。从comboxName下拉框选择名称时,点击“读取”,textboxX1,textboxY1。。textboxX5,textboxY5,显示相应的x,y字段的值,textboxName,显示main表的字段name的值。
    3。从comboxName下拉框选择名称时,点击“删除”,则相应的父子表数据被删除。
    4。如果main表,字段name的值有两个同名,怎么处理。绑定combobox的时候,除了用name来绑定DisplayMember,还可以用ID来绑定ValueMember,那么在SelectedIndexChanged事件中去做,参看
    http://blog.csdn.net/knight94/archive/2006/04/02/648172.aspx
      

  3.   

    Sample code as follows:
    SqlTransaction myTrans = yourDBConn.BeginTransaction(IsolationLevel.ReadCommitted,
    "MyTransaction");

    int nNewID = -1;
    try
    {
    // Must assign both transaction object and connection
    // to Command object for a pending local transaction

    // Add main table use sql-command
    SqlCommand sqlComm = new SqlCommand( yourQuery, yourDBConn );
    sqlComm.Transaction = myTrans;
    sqlComm.CommandTimeout=3600;//Set timeout
    sqlReader=sqlComm.ExecuteReader();  if(sqlReader.Read())
    {
    nNewID = int.Parse(sqlReader.GetValue(0).ToString());//Get new ID
    }
    sqlReader.Close();

    if( nNewID < 0 ) return;

    // Add child table with new ID
    // Create your sql statement using new ID
    sqlComm.CommandText = newQuery;
    sqlComm.ExecuteNonQuery();

    // Commit transaction
    myTrans.Commit();
    }
    catch(SqlException sqlErr)
    {
    myTrans.RollBack();
            MessageBox.Show( sqlErr.Message );
    }
    catch(Exception Err)
    {
    myTrans.Rollback();
    MessageBox.Show( Err.Message );
    }
      

  4.   

    在编写程序的时候,要将数据绑定到textbox上,还是感觉有些困难,书上大多数都是介绍绑定到,datagrid上的
      

  5.   

    to 在编写程序的时候,要将数据绑定到textbox上,还是感觉有些困难,书上大多数都是介绍绑定到,datagrid上的你的TextBox根本不需要绑定,因为其的变化是根据combobox选定值的变化而变化,因此你可以从combobox的SelectedIndexChanged事件入手,要简单的多。
      

  6.   

    结合这几篇文章进行处理,
    ADO.NET中的多数据表操作浅析
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx
    透过vs.net数据窗体向导看Ado.net
    http://blog.csdn.net/zhzuo/archive/2005/01/03/238273.aspx