我通过一个combobox来显示工号(zgdm),但是在旁边的一个textbox里可以直接显示出该员工所在的科室出来,并不可修改,怎么实现?这两个字段来自一个表(zgda)职工档案表,但是存的时候是要存在另外一个记录表里面?
如何实现?在线等,急

解决方案 »

  1.   

    textBox有个ReadOnly属性,一般是False,改成True,就只读了
      

  2.   

    除了1搂办法, 你还可以在textBox添加 KEY PRESS 和 KEY DOWN 事件   private void textBox_KeyPress(object sender, KeyPressEventArgs e)
            {
                e.Handled = true;
            }
    如果要存到另外一个表, 
    可以用datatableAdapter
    或者自己写连接字符串 添加
      

  3.   

    不一定要用textbox嘛,label也可以显示嘛
      

  4.   

    给个OLEDB的例子,楼主可以参考下:
    1.如果楼主用comboBox的话,先要从数据库读取工号(zgdm),循环填充到comboBox里面       //把工号添加到填充comboBox1
            private void DataInit()
            {
                OleDbConnection conn = new OleDbConnection(myConStr);
                try
                {
                    conn.Open();
                    string comStr = "select zgdm from zgda";
                    OleDbDataAdapter myDA = new OleDbDataAdapter(comStr, conn);
                    DataSet myDS = new DataSet();
                    myDA.Fill(myDS, "zgdm");
                    DataTable myDT = myDS.Tables["zgdm"];
                    for (int i = 0; i < myDT.Rows.Count; i++)
                    {
                        //循环添加zgdm到comboBox中
                        comboBox1.Items.Add(myDT.Rows[i][0]);
                    }
                }
                catch
                {
                    MessageBox.Show("数据库有点小问题!", "请注意", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                finally
                {
                    if (conn.State == ConnectionState.Open)
                        conn.Close();
                }
            }数据添加完后,要在comboBox的SelectedIndexChanged事件中让数据显示在textBox里面。
    注意:textBox的Enable属性要设置为false
    事件如下:
            private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                    if (comboBox1.SelectedIndex != -1 )
                    {
                        string SearchStr;
                        //不知道职工科室是什么字段名,用zgks代替,还有不知道zgdm的数据类型,默认int型。
                        SearchStr = "select zgks from zgda where zgdm="+comboBox1.Text;                   
                        OleDbConnection conn = new OleDbConnection(myConStr);
                        try
                        {
                            conn.Open();
                            OleDbDataAdapter myDA = new OleDbDataAdapter(SearchStr, conn);
                            DataSet myDS = new DataSet();
                            myDA.Fill(myDS);
                            //把zgks赋值到txtBox中。
                            txtBox1.Text=myDS.Tables[0].Rows[0][0].ToString(); 
                        }
                        catch
                        {
                            MessageBox.Show("请输入正确的格式!", "请注意", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return;
                        }
                        finally
                        {
                            if (conn.State == ConnectionState.Open)
                                conn.Close();
                        }
                    }
                }
    希望对楼主有所帮助。