Dim cmd As New SQLCommand
cmd.Connec tion Name = "zygl"
dim kz as string = ".Controls("DateTimePicker1").Value, .Controls("TextBox1").Text, .Controls("ComboBox1").Text, .Controls("DateTimePicker2").Value, .Controls("TextBox2").Text, .Controls("TextBox3").Text, .Controls("TextBox4").Text, .Controls("TextBox5").Text, .Controls("ComboBox2").Text, .Controls("TextBox6").Text, .Controls("NumericComboBox1").Value"
dim sql as string = "Insert Into [患者] (登记日期,姓名,性别,出生日期,年龄,地址,电话,联系人,费用类别,住院次数,医农保证号) "
sql = sql & " Values(kz)"
cmd.CommandText = sql
cmd.ExecuteNonQuery()
e.form.close()
取当前窗口各控件录入的值写入表,系统提示红色部分出错,为什么呢?
另外能否精简?
[此贴子已经被作者于2009-1-6 16:25:47编辑过]
这一行代码包含很多很多的错误啊。
补一下动态合成表达式的知识吧,位于帮助文件“开发篇 - Foxtable编程 - 时间编程 - 单引号和双引号”
此外还要注意表达式中,字符用单引号括起来,日期用符号#括起来,数值不用括起来的。
我觉得你还是别用SQL插入数据,严谨的代码会非常的长
用foxtable自带的增加行功能:
Dim r As Row = Tables("患者").AddNew
r("登记日期") = e.Form.Controls("DateTimePicker1").Value
r("姓名") = e.Form.Controls("TextBox1").Value
......
以下是引用狐狸爸爸在2009-1-6 16:39:00的发言:
我觉得你还是别用SQL插入数据,严谨的代码会非常的长
用foxtable自带的增加行功能:
Dim r As Row = Tables("患者").AddNew
r("登记日期") = e.Form.Controls("DateTimePicker1").Value
r("姓名") = e.Form.Controls("TextBox1").Value
......
这样子如果控件过多,那不是太麻烦了?要写好半天..
以下是引用菜鸟foxtable在2009-1-6 16:42:00的发言:
这样子如果控件过多,那不是太麻烦了?要写好半天..
那也比你用SQL方便多了。
Dim r As Row
Dim TC, Tz As String
Tc = "DTP1,TtB1,CbB1,DTP2,TtB2,TtB3,TtB4,TtB5,CbB2,TtB6,NmB"
Tz ="登记日期,姓名,性别,出生日期,年龄,地址,电话,联系人,费用类别,住院次数,医农保证号"
r = Tables("患者").AddNew
For n As Integer = 0 to 10
r(Tz.split(",")(n))= e.form.Controls(Tc.split(",")(n)).Value
Next
以下是引用ybil在2009-1-7 0:03:00的发言:
Dim r As Row
Dim TC, Tz As String
Tc = "DTP1,TtB1,CbB1,DTP2,TtB2,TtB3,TtB4,TtB5,CbB2,TtB6,NmB"
Tz ="登记日期,姓名,性别,出生日期,年龄,地址,电话,联系人,费用类别,住院次数,医农保证号"
r = Tables("患者").AddNew
For n As Integer = 0 to 10
r(Tz.split(",")(n))= e.form.Controls(Tc.split(",")(n)).Value
Next
呵呵,我来改进一下:
Dim r As Row
Dim TC(), Tz() As String
Tc = "DTP1,TtB1,CbB1,DTP2,TtB2,TtB3,TtB4,TtB5,CbB2,TtB6,NmB".Split(",")
Tz = "登记日期,姓名,性别,出生日期,年龄,地址,电话,联系人,费用类别,住院次数,医农保证号".Split(",")
r = Tables("患者").AddNew
For n As Integer = 0 to 10
r(Tz(n))= e.form.Controls(Tc(n)).Value
Next
以下是引用狐狸爸爸在2009-1-7 0:40:00的发言:
呵呵,我来改进一下:
Dim r As Row
Dim TC(), Tz() As String
Tc = "DTP1,TtB1,CbB1,DTP2,TtB2,TtB3,TtB4,TtB5,CbB2,TtB6,NmB".Split(",")
Tz = "登记日期,姓名,性别,出生日期,年龄,地址,电话,联系人,费用类别,住院次数,医农保证号".Split(",")
r = Tables("患者").AddNew
For n As Integer = 0 to 10
r(Tz(n))= e.form.Controls(Tc(n)).Value
Next
我对你的景仰.犹如滔滔江水,绵绵不绝