以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  老师帮忙看看,哪里错了?能精简吗?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1562)

--  作者:菜鸟foxtable
--  发布时间:2009/1/6 16:23:00
--  老师帮忙看看,哪里错了?能精简吗?
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编辑过]

--  作者:狐狸爸爸
--  发布时间:2009/1/6 16:34:00
--  
这一行代码包含很多很多的错误啊。

补一下动态合成表达式的知识吧,位于帮助文件“开发篇 - Foxtable编程 - 时间编程 - 单引号和双引号”
此外还要注意表达式中,字符用单引号括起来,日期用符号#括起来,数值不用括起来的。

--  作者:狐狸爸爸
--  发布时间: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
--  
以下是引用狐狸爸爸在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
......

图片点击可在新窗口打开查看这样子如果控件过多,那不是太麻烦了?要写好半天..


--  作者:狐狸爸爸
--  发布时间:2009/1/6 16:44:00
--  
以下是引用菜鸟foxtable在2009-1-6 16:42:00的发言:

图片点击可在新窗口打开查看这样子如果控件过多,那不是太麻烦了?要写好半天..


那也比你用SQL方便多了。


--  作者: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

--  作者:狐狸爸爸
--  发布时间:2009/1/7 0:40:00
--  
以下是引用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


--  作者:yuanbin
--  发布时间:2009/1/7 8:35:00
--  
学习了。
--  作者:菜鸟foxtable
--  发布时间:2009/1/7 8:50:00
--  
以下是引用狐狸爸爸在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

我对你的景仰.犹如滔滔江水,绵绵不绝图片点击可在新窗口打开查看


--  作者:狐狸爸爸
--  发布时间:2009/1/7 9:15:00
--  
以下是引用菜鸟foxtable在2009-1-7 8:50:00的发言:

我对你的景仰.犹如滔滔江水,绵绵不绝图片点击可在新窗口打开查看


真正解决问题的是YBIL