| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1282 人关注过本帖
标题:[求助]如何调用数据库中的代码
只看楼主 加入收藏
weihongkun
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-12-8
收藏
 问题点数:0 回复次数:8 
[求助]如何调用数据库中的代码
我将一段程序写好后保存在数据库中
我现在想通过vs2005开发一个界面,在点击一个按纽后可以提取数据库中的代码并执行
我现在遇到的困难是我如何提取到数据库中的代码并让它执行
请大家赐教
搜索更多相关主题的帖子: 数据库 代码 界面 
2007-01-26 15:43
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 
代码调用存储过程 用sqlDataAdapter,如果不返回结果集 使用ExecuteNonquery, 否则使用dataset的fill 方法
也可以使用SQLHelper的ExecuteDataTable,ExecuteNonQuery 方法
或者你可以先设计一个Dataset(XSD文件), 把存储过程放到TableAdapter中, 在代码中使用TableAdapter的fill方法

如果想看具体的代码 你应该贴到对应的开发语言版块

给你一个vb.net的例子:
Dim dt As DataTable,strsql as string
Try
Me.Cursor = Cursors.WaitCursor
strsql = "Exec pr_SearchUserByNo "+ UserNo.ToString
dt = SqlHelper.ExecuteDataTable(My.Settings.MyConnectionString, CommandType.Text, strsql) ---存储过程返回的结果放到表dt中

Dim ArrayPara(2) As System.Data.SqlClient.SqlParameter
ArrayPara(0) = New System.Data.SqlClient.SqlParameter("@xGroupCode", SqlDbType.Int)
ArrarPara(1) = New System.Data.SqlClient.SqlParameter("@xRecordType", SqlDbType.VarChar, 10)
ArrayPara(0).Value = 10
ArrayPara(1).Value = "Checked"

strsql = "Exec Pr_Delete_Duplicate_Records"
SqlHelper.ExecuteNonQuery(My.Settings.MyConnectionString, Data.CommandType.StoredProcedure, 0, strSql, ArrayPara)
Catch ex As Exception
Msgbox(ex.tostring)
Finally
Me.Cursor = Cursors.Default
End Try




[此贴子已经被作者于2007-1-26 16:13:54编辑过]


2007-01-26 15:58
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
把程序代码保存到数据库中???

飘过~~
2007-01-26 20:25
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 

晕 我理解错了

楼主的思路似乎很...奇特... 没编译过的代码保存在数据库中有什么用?
如果是编译过的...不就是个exe吗? 那还放到数据库里面干嘛...


2007-01-27 11:59
weihongkun
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-12-8
收藏
得分:0 

放在数据库里有很大的用途的,比如用户可以自己新增加一段代码,然后保存成一个方案,下次就可以直接调用这个方案了
实现更大的灵活性

2007-01-27 16:51
weihongkun
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-12-8
收藏
得分:0 
以下是引用Kendy123456在2007-1-26 15:58:00的发言:
代码调用存储过程 用sqlDataAdapter,如果不返回结果集 使用ExecuteNonquery, 否则使用dataset的fill 方法
也可以使用SQLHelper的ExecuteDataTable,ExecuteNonQuery 方法
或者你可以先设计一个Dataset(XSD文件), 把存储过程放到TableAdapter中, 在代码中使用TableAdapter的fill方法

如果想看具体的代码 你应该贴到对应的开发语言版块

给你一个vb.net的例子:
Dim dt As DataTable,strsql as string
Try
Me.Cursor = Cursors.WaitCursor
strsql = "Exec pr_SearchUserByNo "+ UserNo.ToString
dt = SqlHelper.ExecuteDataTable(My.Settings.MyConnectionString, CommandType.Text, strsql) ---存储过程返回的结果放到表dt中

Dim ArrayPara(2) As System.Data.SqlClient.SqlParameter
ArrayPara(0) = New System.Data.SqlClient.SqlParameter("@xGroupCode", SqlDbType.Int)
ArrarPara(1) = New System.Data.SqlClient.SqlParameter("@xRecordType", SqlDbType.VarChar, 10)
ArrayPara(0).Value = 10
ArrayPara(1).Value = "Checked"

strsql = "Exec Pr_Delete_Duplicate_Records"
SqlHelper.ExecuteNonQuery(My.Settings.MyConnectionString, Data.CommandType.StoredProcedure, 0, strSql, ArrayPara)
Catch ex As Exception
Msgbox(ex.tostring)
Finally
Me.Cursor = Cursors.Default
End Try





我不想用存储过程,我需要做到点新增按纽后写入代码,然后保存代码为a,下次直接执行a就行了,也就是需要调用数据库中的代码并运行

2007-01-27 16:54
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
以下是引用weihongkun在2007-1-27 16:51:00的发言:

放在数据库里有很大的用途的,比如用户可以自己新增加一段代码,然后保存成一个方案,下次就可以直接调用这个方案了
实现更大的灵活性

这样不好吧??
要是用户添加一段恶意代码呢??
保存方案一般都是保存重要的属性,并在允许的情况下..


飘过~~
2007-01-27 20:18
Kendy123456
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:62
帖 子:2720
专家分:0
注 册:2007-1-3
收藏
得分:0 

如果一定要这样 你只能保证你存取的代码是SQL代码而不是任何开发语言的代码

用个varchar类型的字段 把用户保存的sql语句放进去

运行的时候用 EXEC(@SqlString)的形式执行

你在前台保存之前要进行语法校验.


2007-01-29 10:48
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
收藏
得分:0 
头冒金花

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2007-01-29 13:11
快速回复:[求助]如何调用数据库中的代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025964 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved