关于winform给sqlite数据库某个表添加字段问题。

2020-03-31 13:53发布

比如说有个学生表,里面有姓名,性别,年龄等字段。winform做的增删改查功能和窗体页面都有,还有一个功能是可以给学生表增加字段。比如增加一个"出生年月"字段,那么增加完成学生表就多了一个"出生年月"字段,此时添加和修改学生信息的窗体页面是没有“出生年月”这一项供用户填写的,我想加一个比如说label控件和textBox控件,label控件是出生年月,textBox让用户录入数据。只要给学生表添加一个字段,就在添加和修改窗体页面增加相应的控件。

各位大神给个思路或者方法。

3条回答
够拽才男人
2楼-- · 2020-03-31 14:37

建议将报错信息给贴出来

查看更多
女痞
3楼-- · 2020-03-31 14:44

我觉得改变数据库表结构的设计不是很好。如果我设计,我就这样来,设计两个表:Students表放学生基本信息,再来一个子表StudentInfos放之后需要灵活扩展的数据,内容可能像下面这样:

id studentId infoname infovalue valueType range
1 1 birthday 2020-3-3 time
2 1 gender enum 男,女

如果需要增加或减少学生实体的属性,就在这个表里增加或删除一行,不用改变表结构。至于UI上,可以读取这个表,然后根据这个表的内容生成控件,可能如下:

var infos = student.Infos;
foreach(var info in infos)
{
  AddControl(info);
}
AddControl(Info info)
{
  if(info.vuletype = "enum")
  {
     RadioButton rb = new RadioButton();
     form.Controlls.Add(rb);
  }
   else if(info.valuetype == "text")
   {
        Label label = new Label();
        form.Controlls.Add(lable);
   }
   // todo more
}
查看更多
做个烂人
4楼-- · 2020-03-31 14:47

哪里不成功,有什么错误

查看更多
登录 后发表回答