以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- [求助]增加多行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1241)
|
-- 作者:易服
-- 发布时间:2008/11/25 22:50:00
-- [求助]增加多行
此主题相关图片如下:增加多行.jpg
外部数据access名称TGFL第一列为主键_Identify(数字型)第二列造林年度(字符型)第三列乡名(字符型) 怎样设置有效主键?看例子也不明白
[此贴子已经被作者于2008-11-26 11:05:27编辑过]
|
-- 作者:shxiaoya
-- 发布时间:2008/11/25 23:18:00
--
主键_Identify(自动编号)
|
-- 作者:易服
-- 发布时间:2008/11/26 9:16:00
--
这个当然知道,要问的是怎样设置?目的是增加多行后将已有的数据粘贴进来,可能有几千行要多次增加300行才行。实例中不知怎么变通。
DataRowAdding
增加一行时执行,此时新增行(DataRow)已经创建,但并未真正增加到DataTable中,通常在此处对新增行进行默认值的设置。
e参数属性:
DataTable:返回增加行的数据表。 DataRow: 返回新增加的行。
示例一
例如希望新增行的日期设为当前系统日期,姓名设为当前登录用户名,可以将DataRowAdding事件的代码设置为:
e. DataRow("日期") = Date.Today() e.DataRow("姓名") = User.Name
示例二
希望增加行的时候,如果按住了Ctrl键,则自动将选定行的内容复制到新增行中,也就是克隆行:
If ModifierKey <> Keys.Control Then \'如果没有按住Ctrl键 Return \'那么返回 End If If CurrentTable.DataTable.Name <> e.DataTable.Name Then \'如果不是在当前表增加行。 Return \'那么返回 End If If CurrentTable.Current Is Nothing Then \'如果当前表选定行为空。 Return \'那么返回 End If Dim dr As DataRow = CurrentTable.Current.DataRow \'获得当前行的DataRow,赋给变量dr For Each dc As DataCol In e.DataTable.DataCols e.DataRow(dc.Name) = dr(dc.Name) \'将dr的每一列内容复制到新增行中。 Next
|
-- 作者:易服
-- 发布时间:2008/11/26 12:35:00
--
顶
|
-- 作者:易服
-- 发布时间:2008/11/26 16:22:00
--
再顶
|
-- 作者:狐狸爸爸
-- 发布时间:2008/11/26 16:28:00
--
发文件
|
-- 作者:blackzhu
-- 发布时间:2008/11/26 16:34:00
--
以下是引用易服在2008-11-25 22:50:00的发言:此主题相关图片如下:增加多行.jpg 外部数据access名称 TGFL第一列为主键 _Identify(数字型)第二列 造林年度(字符型)第三列乡名(字符型) 怎样设置有效主键?看例子也不明白
[此贴子已经被作者于2008-11-26 11:05:27编辑过]
你这个是外部数据源,在外部数据源中将_Identify列改成主键和自动编号再载入就可以搞定了。
|
-- 作者:易服
-- 发布时间:2008/11/26 16:53:00
--
是自己将_Identify列设成主键和数字型改成自动编号就可以了。谢谢!
|
-- 作者:blackzhu
-- 发布时间:2008/11/27 8:42:00
--
以下是引用易服在2008-11-26 16:53:00的发言: 是自己将_Identify列设成主键和数字型改成自动编号就可以了。谢谢!
如果是ACCESS直接在ACCESS改好后加载就可以了。
|
-- 作者:blackzhu
-- 发布时间:2008/11/27 8:43:00
--
因为SQL2000没有用过,所以就不知道了,我估计是一样的,一般情况下我是在狐表中建立表,导出到ACCESS中,在导入,基本自动的,只需要把_Identify列改成主键和自动编号就行。
|