日期:2014-05-17  浏览次数:20944 次

在WinForm中导入数据后的数据操作和显示问题
自己学着做了个简单的数据管理程序,目前界面如下:


现在的问题有几个:
1、在dataGridView中“婚否”列显示的布尔值true,false变成 是,否。我不知道应该把IF判断替换语句具体放在哪里...还有一种方法是在“列编辑”中把这列变成Template列并编辑,但是我几乎把每个选项都点开了,实在是没找到“列编辑”选项中中转变Template的,只有变成CheckBox,Button等等,求教是我的版本问题,还是我压根就没找对地方...
2、“年龄”列在数据库里设的是int,我想在更新或者插入时在文本中限定输入数字。目前两种想法,一个是直接在文本输入时判定,问题是我还是找不到在哪个位置才能让它正确发挥作用..,第二个就是在按钮按下时用正则判断输入文本中的字符串,可是我是判断没有字母或者其它符号还是判断只有数字,感觉都不太好实现,求教..
3、当dataGridView中的数据被选定时,想要实现直接把数据读入下面的各个文本框中,因为我的更新语句有点问题,一片空白时点“更新”会把数据刷空,所以...
4、更新语句执行完毕后,会刷新界面,想要实现刷新之后依然定位于原来操作的列,想法是在刷新之前存储列的值,在之后读取,依然是语句用法把握不好...

以上的问题我都在网上找了一些解决的方法,但估计是因为本人基础有点差,所以都不能太好的运用并达到我想要的效果,包括自己的代码也是半抄半改出来的,所以在这里把问题总结一下发出来,也非常希望能得到大家的帮助!我自己的代码会贴在下面:

PS:如果可能的话,解决问题时最好(真不是伸手党,呜呜)能有代码加一些简单的说明,因为我刚学C#不久,有代码可能理解起来更直观一点,谢谢!

下面是代码:里面的n是用来提示操作成功失败的,我把相关的语句删掉了,不浪费大家时间,对这里能作一些什么修改的尽管吐糟,绝对不要手下留情!


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Text.RegularExpressions;

namespace WinFrom数据操作
{
    public partial class frmManager : Form
    {
        public frmManager()
        {
            InitializeComponent();
        }
     
        private void button1_Click(object sender, EventArgs e) //查看,感觉好像没什么实际作用..
        {
            string sql = "select * from DB1";
            SqlConnection conn = new SqlConnection(@"server=.;uid=user1;pwd=111;database=use");
            SqlCommand cmd = new SqlCommand(sql, conn);
            DataTable dt = new DataTable();
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            sda.Fill(dt);
            dataGridView1.DataSource = dt;
        }

        private void button2_Click(object sender, EventArgs e) //插入,关于年龄的判断语句加在这里比较好吗?
        {
            int n = 0;
            string sql = "insert into DB1(编号,姓名,年龄,婚否,入职时间,工资,好友,利率,职位,备注) values (@编号,@姓名,@年龄,@婚否,@入职时间,@工资,@好友,@利率,@职位,@备注)";
            if (textBox2.Text.Trim() ==&nbs