DevExpress后置代码中初始化SQL数据源的方法
//初始化SQL数据源的提供者和连接字符串 函数 OK
public virtual void InitSqlDataSource_ConStr(SqlDataSource sql_ds)
{
ConnectionStringSettings cs_set = ConfigurationManager.ConnectionStrings["connString"];
sql_ds.ProviderName = cs_set.ProviderName;
sql_ds.ConnectionString = cs_set.ConnectionString;
}
//初始化SQL数据源的查询插入修改语句 针对一个主关键字段名称
public virtual void InitSqlDataSource_SelectInsertUpdate(SqlDataSource p_ds, string gridview_ControlID, string tableName, string where_str, string KeyFieldName)
{
string x = "";
//
ControlParameter ctrl_param = new ControlParameter();
ctrl_param.ControlID = gridview_ControlID;
ctrl_param.PropertyName = "KeyFieldName";
ctrl_param.Name = KeyFieldName;
//
string t_fd_name = "";
x = "select * from " + tableName + " where 1<>1";
DataTable dt_null = this.GetDataTable(x);
//
string fds_str = "";
string fds_val = "";
string update_fds_str = "";
//获取字段分析后字符串
this.get_SqlDataSource_sql_str(tableName, ref fds_str, ref fds_val, ref update_fds_str);
//
string insert_sql = "";
insert_sql = "insert " + tableName + "(" + fds_str + ") values(" + fds_val + ")";
string update_sql = "";
update_sql = "update " + tableName + " set " + update_fds_str + " where " + KeyFieldName + "=@" + KeyFieldName + " ";
//查询语句
p_ds.SelectCommandType = SqlDataSourceCommandType.Text;
p_ds.SelectCommand = "select * from " + tableName + " " + where_str;
//
////删除语句
p_ds.DeleteCommandType = SqlDataSourceCommandType.Text;
p_ds.DeleteCommand = "delete from " + tableName + " where " + KeyFieldName + "=@" + KeyFieldName + "";
p_ds.DeleteParameters.Clear();
p_ds.DeleteParameters.Add(ctrl_param);
//
//插入语句
p_ds.InsertCommandType = SqlDataSourceCommandType.Text;
p_ds.InsertCommand = insert_sql;
p_ds.InsertParameters.Clear();
p_ds.InsertParameters.Add(ctrl_param);
//--
for (int i = 0; i < dt_null.Columns.Count; i++)
{
t_fd_name = dt_null.Columns[i].ColumnName;
if (t_fd_name.ToUpper() != KeyFieldName)
{
p_ds.InsertParameters.Add(new Parameter(t_fd_name));
}
}
//
//修改语句
p_ds.UpdateCommandType = SqlDataSourceCommandType.Text;
p_ds.UpdateCommand = update_sql;
//--
p_ds.UpdateParameters.Clear();
p_ds.UpdateParameters.Add(ctrl_param);
for (int i = 0; i < dt_null.Columns.Count; i++)
{
t_fd_name = dt_null.Columns[i].ColumnName;
if (t_fd_name.ToUpper() != KeyFieldName)
{
p_ds.UpdateParameters.Add(new Parameter(t_fd_name));
}
}
//==
}
public virtual void InitSqlDataSource_Select(SqlDataSource p_ds,string tableName, string where_str)
{
//查询语句
p_ds.SelectCommandType = SqlDataSourceCommandType.Text;
p_ds.SelectCommand = "select * from " + tableName + " " + where_str;
//
//==
}
//获取SQL数据源的update和insert语句的需要的组合字符串 函数 OK
public void get_SqlDataSource_sql_str(string tablename, ref string fds_str, ref string fds_val, ref string update_fds_str)
{
string x = "select * from "+tablename+" where 1<>1";
DataTable dt_null = this.GetDataTable(x);
string t_fd_name = "";
fds_str = "";
fds_val = "";
//
update_fds_str = "";
//
for (int i = 0; i < dt_null.Columns.Count; i++)
{
t_fd_name = dt_null.Columns[i].ColumnName;
//#region//插入语句字符串处理
if (fds_str == "")
{
fds_str = t_fd_name;
fds_val = "@" + t_fd_name;
}
else
{
fds_str += "," + t_fd_name;
fds_val += ",@" + t_fd_name;
}
//#endregion
//#region //修改语句字符串处理
if (update_fds_str == "")
{
update_fds_str = t_fd_name + "=@" + t_fd_name;
}
else
{
update_fds_str += "," + t_fd_name + "=@" + t_fd_name;
}
//#endregion
}
}
//
调用的方法:
//初始化 需求信息登记的数据源
this.InitSqlDataSource_ConStr(this.sql_ds_xq);
string xq_ctrlID = this.dx_gv_xq.ID; //或xq_ctrlID =this.pagecontrol.ID+"$"+ this.dx_gv_xq.ID;
this.InitSqlDataSource_SelectInsertUpdate(this.sql_ds_xq, xq_ctrlID, "TableName", whereStr, "MainFieldName");
DevExpress后置代码中初始化SQL数据源的方法的更多相关文章
- wpf后置代码中的Grid布局以及图片路径的设置
之前用Grid练习连连看布局时,遇到了几个困惑.此次就把当时的一些收获写出来,供以后翻看. 图片路径可能比较常用,所以就写在第一个了. 在xaml中,设置图片非常简单,只要把图片拷贝到资源目录(这里假 ...
- .NET在后置代码中输入JS提示语句(背景不会变白)
来源:http://niunan.iteye.com/blog/248256 Page.ClientScript.RegisterStartupScript(Page.GetType(), " ...
- 在php中防止SQL注入的方法
摘要:我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PH ...
- Python中防止sql注入的方法详解
SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库.下面这篇文章主要给大家介绍了关于Python中 ...
- 在Centos中导入sql文件的方法
在Centos中导入sql文件的方法 利用mysql -u root -p进入mysql数据库 对于文件的导入,在Centos下里面的是首先要新建一个和文件相同名字的数据库.例如:mysql>c ...
- 关于在Java代码中写Sql语句需要注意的问题
最近做程序,时不时需要自己去手动将sql语句直接写入到Java代码中,写入sql语句时,需要注意几个小问题. 先看我之前写的几句简单的sql语句,自以为没有问题,但是编译直接报错. String st ...
- 转:PHP中防止SQL注入的方法
[一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最 ...
- PL/SQL开发中动态SQL的使用方法
一般的PL/SQL程序设计中,在DML和事务控制的语句中可以直接使用SQL,但是DDL语句及系统控制语句却不能在PL/SQL中直接使用,要想实现在PL/SQL中使用DDL语句及系统控制语句,可以通过使 ...
- qt中执行 sql文件的方法
由于qt中没有原生的执行sql文件的方法.因此我们需要根据sql文件中的流的特点,将其分解成一个个语句单独执行. 1.首先通过Qfile读取sql文件 2.将sql文件中的内容通过“:”进行拆解 3. ...
随机推荐
- Android——inflate 将一个xml中定义的布局找出来
通俗的说,inflate就相当于将一个xml中定义的布局找出来. 因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组 ...
- 一点点seo
Search Engine Optimization(搜索引擎优化 ),是较为流行的网络营销方式. 主要目的是增加特定关键字的曝光率.有站外SEO和站内SEO.通过了解各类搜索引擎如何抓取互联网页面. ...
- js对象4-js原型--杂志
提问:在js中什么是原型 prototype 每个学js的人都有自己的解释,网上一大堆的解释与应用,但是看了他们的解释表示还是不理解怎么办?(原因是他们说的太天花乱坠了) 官方手册解释:prototy ...
- NOIP2013Day1解题报告
本来今天晚上拿13年NOIP的题目来做一下,测测能够得多少分,结果一晚上把Day1写完竟然AK了,吼吼吼 D1T1,题目:http://codevs.cn/problem/3285/ 很水的一道快速幂 ...
- linux 将foo制定n, m之间行的内容, 追加到bar文件
sed -ne '196, 207 p' foo >> bar;把文件foo 196-行207行的内容追加到 bar文件
- meta 标签属性(网站兼容与优化需要)
概要 标签提供关于HTML文档的元数据.元数据不会显示在页面上,但是对于机器是可读的.它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 web 服务. —— W3School ...
- sublineText
https://github.com/thinkpixellab/flatland { "color_scheme": "Packages/Theme - Flatlan ...
- iOS取证将如漫漫长夜
日前因恐攻一案,FBI对一支已上锁的iPhone 5c束手无策,美国法院出具命令要求苹果配合,但被苹果公司执行长库克以维护安全及隐私为由悍然拒绝. 平心而论,各有其立场,但在一个犯罪案件之中,真的可以 ...
- Use EnCase to acquire data from a smartphone
Yesterday someone asked me a question can EnCase acquire data from a smartphone, and my reply was &q ...
- 电脑U盘启动总结
1:联想G410(笔记本) FN+F2:进入BIOS,FN+F12,快速启动选择. boot mode—>Legacy support,boot priority—>Legacy firs ...