易截截图软件、单文件、免安装、纯绿色、仅160KB

拼接SQL造成的意想不到的后果

执行数据操作时,由于拼接SQL存在种种弊端,早就应该抛弃了,但在现实开发时,又由于种种原因,公司一直采用这种方式(UI层和逻辑层都有严格的过滤,倒也没出现过什么问题),但昨天开发时却出现了意想不到的问题,一个简单的语句会造成严重后果。简单的语句示例如下:
    /// <summary>
    /// 更新主键为2的记录的总钱数
    /// </summary>
    /// <param name="totalMoney">修改后的总钱数</param>
    public void UpdateTotalMoney(int totalMoney)
     {
        int id = 2; //数据库表主键
        int oldTotalMoney = 5000;       //主键为2的记录原来的总钱数
        int newTotalMoney = totalMoney; //主键为2的记录更改后的钱数
        int totalMoneyChange = oldTotalMoney - newTotalMoney; //总钱数的变化量
        string sql = string.Format("update Test1220 set totalMoney = {0},remainMoney = remainMoney-{1} where id = {2}", newTotalMoney, totalMoneyChange, id);   //总钱数变化,剩余可支配钱数也跟着编号
         SqlConnection con = new SqlConnection(sqlConnectString);
         con.Open();
         SqlCommand cmd = new SqlCommand(sql, con);
         cmd.ExecuteNonQuery();
         con.Close();
     }
    CREATE TABLE Test1220(
         id int IDENTITY(1,1) NOT NULL PRIMARY KEY,
         totalMoney int NULL,
         remainMoney int NULL
&n


相关文档:

精妙SQL语句

一、基础
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:mssql7backupMyNwind_1.dat'
--- 开始备份
BACKUP DATABASE pubs TO testBack
......

查询SQL服务器所有数据库名

String strServerName = "服务器名或IP";
String strUserID = "数据库用户名";
String strPSW= "数据库密码";
DataTable DBNameTable = new DataTable();
OleDbConnection Connection = new OleDbConnection(String.Format("Provider=SQLOLEDB;Data Source={0};User ID={1};PWD={2}", strServerName, strUserID, strPS ......

SQL语法手册

转自:
http://blog.csdn.net/web_gus/archive/2004/10/11/132122.aspx
Select
用途:
 
从指定表中取出指定的列的数据
语法:
 
SELECT column_name(s) from table_name
 
解释:
从数据库中选取资料列,并允许从一或多个资料表中,选取一或多个资料列或资料行。
SELECT
陈述式的完整语法相当 ......

SQL语句大全(2)

在进行数据库操作时,无非就是添加、删除、修改,这得设计到一些常用的SQL语句,如下:
SQL常用命令使用方法:
(1) 数据记录筛选:
sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]"
sql="select * from 数据表 where 字段名 like %字段值% order by 字段名 [desc]"
sql="select top 10 * fro ......

SQL语句大全(3)

--语 句              功 能
--数据操作
SELECT   --从数据库表中检索数据行和列
INSERT   --向数据库表添加新数据行
DELETE   --从数据库表中删除数据行
UPDATE   --更新数据库表中的数据
--数据定义
CREATE TABLE  --创建一个数据库表
DROP TABLE   --从数据库中删除表
ALTER ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号