各位前辈好,我是一个新人,想向各位请教点最近学习C#时候所遇到的问题。我这些问题都是在C/S程序里面的问题,由于本人不是什么高手,所以好请各位能够针对C/s(winform)做一个针对性的讲解,而不是web的!先谢谢了!问题如下:
问题一、datagrid里面怎么实现增加流水号;
问题二、如果需要将datagrid里面选中的行(可能是1行也可能是很多行)提交给另一个数据表(此表不是原来的数据表),应该如何操作?这个问题的关键可能也就是怎么得到所选的这些行;
问题三、我们都知道电脑的操作系统里面有个“计算器”,当我们按键盘上的的相应键的时候 就等于按了计算器上的相应按钮,请问这个操作又是怎么实现的;
问题四、在C/S程序里面对于数据的增减的思想是怎么样的(多台客户机访问一数据库),比如说在数据提交方面有什么技巧之类的 ?也就是怎么增加才是最节省服务器系统资源的。  先就问这么多问题了!希望各位能够给小弟一个满意的答复,先谢谢大家了!祝大家新年快乐!财源滚滚!身体健康!

解决方案 »

  1.   

    1.增加流水号可以在数据库里字段里实现
    2.选中某一行,根据datagrid绑定的数据,DataRow[][]
    3.form的onKeyPress事件里做处理就可以了
    4.C/s下不用怎么考虑这些,用数据集就可以了,简单实用
      

  2.   

    谢谢楼上的回答 但是我需要的第一 ,不是在数据库里面加流水号 而是在Datagrid里面
    第二、我是要取得选中的所有行,对你说的我不是很了解 能否说详细滴
    第三、关于第三个问题也请说相信点!谢谢!
      

  3.   

    建议去看看微软出的一本书《Programming Microsoft Windows With C#》作者是著名的Charles Petzold的第6章你就会对第3个问题很了解了。
      

  4.   

    只有英文版的电子书,不过俺校的图书馆里有中文版,呵呵
    利用KeyEventArgs e
    你可以利用                 e.KeyCode;
    e.KeyData;
    e.Modifiers;
    e.KeyValue;
    等等一系列
    做出判断你按的键
      

  5.   

    关于第三个你可以用base的cmdkeypress(记不清名字了,等我明天查一下)函数。
    这样就可以在窗体为活动窗口时相应键盘,而不是针对某个控件。即焦点在窗体任何位置都有效
      

  6.   

    关于第三个问题:
    protected override bool ProcessCmdKey( ref Message msg, Keys keyData )
    {
    try
    {
    if( button按下 )
    {
    ...... return true;
    }
    }
    catch( Exception ex )
    {
    SetLogPut( ex.Message );
    }
    return base.ProcessCmdKey( ref msg, keyData );
    }