在C#中用insert select 执行插入数据里总是会插入两遍

来源:百度知道 编辑:UC知道 时间:2024/05/18 23:39:21
如这条语句它中会插入两条数据
insert voter (v_title) select 'hello'
/*下面是我写的两个方法用与执行sql语句用这个方法执行sql语句时就会插入两次不信你们试试看*/
/*真搞不民懂到底是哪里出了问题**/
using System;
using System.Data;
using System.Data.SqlClient;
public class sqldata
{
public sqldata()
{
}
//*******这个方法con()执行insert没问题但用insert select就会插入两次*/
public static SqlDataReader con(string ssc)
{
string sqlconnstring = "Data Source=.;Initial Catalog=mydate;Integrated Security=True";
SqlConnection conn = new SqlConnection(sqlconnstring);
conn.Open();
SqlCommand cmd = new SqlCommand();//这里可直接写字符串SqlCommand(conn);
cmd.Connection = conn;
cmd.CommandText = ssc;
int val = cmd.ExecuteNonQuery();
if (ssc.IndexOf("select") != -1)
{ SqlDataReader sdr = cmd.ExecuteReader(); return sdr; }
else<

不可能,一定sql语句被执行了两次,你可以调试看看哪里出了问题
你在查询分析器里执行
insert voter (v_title) select 'hello'
这条语句就知道,sql只执行了一次,自个调试step by step就知道哪出问题了

insert into voter (v_title) values('hello')

不能吧

跟踪一下,事件判断有问题

insert voter (v_title) select 'hello'
insert into voter(v_title) values('hello')
这两条语句本质上是一样的.都只插一条
但如果insert voter (v_title) select 'hello' FROM 表名A
如是A表有几条明细,那么就插入几条

把查询的结果又插入到数据库中了