C#sql选择表中某一整数字段大于某一值的所有记录

程序为:stringSqlCommand="select*from[position]where项目编号='"+num_project.ToString()+"'and监... 程序为:
string SqlCommand = "select * from [position] where 项目编号='" + num_project.ToString() + "'and 监测点>'" + num_monitoring.ToString() + "'";
SqlDataAdapter thisAdapter = new SqlDataAdapter(SqlCommand, conn);
//--------------------新建数据集合---------------------------------------
//清空数据集合
thisDataSet.Clear();
thisAdapter.Fill(thisDataSet, "position");
int count = thisDataSet.Tables["position"].Rows.Count;
for (int i = 0; i < count; i++)
{
string NUM=thisDataSet.Tables["position"].Rows[i]["监测点"].ToString();
SqlCommand = "update [position] set 监测点='" + Convert.ToString(Convert.ToInt16(NUM) - 1) + "'where项目编号='" + num_project.ToString() + "'and 监测点='" + NUM + "'";
SqlCommand recmd = new SqlCommand(SqlCommand, conn);
recmd.ExecuteNonQuery();
}
其中num_monitoring为一序号,目的是找出SQL数据库中【position】表中大于num_monitoring的所有记录,并将相应的序号比原来小1,背景:删除某一条记录后,将剩余的序号还是按照从1开始以1为单位递增排列。
展开
 我来答
龍过鸡年
2013-11-04 · TA获得超过311个赞
知道小有建树答主
回答量:308
采纳率:100%
帮助的人:366万
展开全部

1、数据库中的项目编号和监测点是什么类型的数据?如果是 int,则无需进行 string 转换,参数传递也无需加单引号(')。

2、使用存储过程,如果直接编写查询语句建议使用 StringBuilder 或者 string.Format

3、没必要循环更新数据,完全可以批量更新。

4、数据架构很重要,数据库、表、字段尽量不要用中文

5、.NET Framework 4.0 可以使用 System.Data.Linq.DataContext 进行数据管理


注意:千万别用下面的代码直接执行

var num_project = 1;
var num_monitoring = 1;

var query = "";

var sb = new StringBuilder();
sb.AppendLine("SELECT * FROM [Position]");
sb.AppendLine("WHERE 项目编号 = {0} AND 监测点 > {1}");

query = string.Format(sb.ToString(), num_project, num_monitoring);
Console.WriteLine(query);

sb.Clear();

sb.AppendLine("UPDATE [Position]");
sb.AppendLine("SET 监测点 = 监测点 - 1");
sb.AppendLine("WHERE 项目编号 = {0} AND 监测点 > {1}");

query = string.Format(sb.ToString(), num_project, num_monitoring);
Console.WriteLine(query);
handangaoyang
2013-11-04 · TA获得超过2242个赞
知道大有可为答主
回答量:2633
采纳率:88%
帮助的人:896万
展开全部
你这个代码这样搞可能会出问题。
1.你这个要跟新的字段,是不是主键,如果是主键,我想应该不能更新的。因为你用dataset更新数据库时,肯定是更新主键找数据更新。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式