下面语句用于执行DML(INSERT UODATE,DELETE),断点执行发现均未对sql中的表单无任何作用,大家看看是哪里出问题了?
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“fastFoodDataSet.Customer”中。您可以根据需要移动或删除它。
            
            SqlConnection con = new SqlConnection("Data Source=yh-20120602uzvz;Initial Catalog=FastFood;Integrated Security=True");
            string Sql1 = "insert into Customer(CustomerID,UserName,PassWord) values('1001','李宏','111')";
            string Sql2 = "update Customer set name='张伟' where CustomerID=1001";
            string Sql3 = "delete from Customer where CustomerID=1001";
            SqlCommand comm = new SqlCommand(Sql1, con);//创建和声明Command对象
            con.Open();//调用方法前打开数据库连接,可以减少数据库连接所花时间,节省数据库资源
            int count = comm.ExecuteNonQuery();//执行插入SQL语句并返回的int值是命令影响的数据库行数count的值为1
            comm.CommandText = Sql2;//重新设置comm对象要执行Sql语句
            count = comm.ExecuteNonQuery();//执行更新SQL语句并返回的int值是命令影响的数据库行数count的值为1
            comm.CommandText = Sql3;
            count = comm.ExecuteNonQuery();//执行删除SQL语句并返回int值是命令影响的数据库行数count的值为1
            con.Close();//关闭数据库连接
        }              
    }
}

解决方案 »

  1.   

    单独执行看有没有作用,屏蔽下面的代码
    int count = comm.ExecuteNonQuery();//执行插入SQL语句并返回的int值是命令影响的数据库行数count的值为1
      //comm.CommandText = Sql2;//重新设置comm对象要执行Sql语句
      //count = comm.ExecuteNonQuery();//执行更新SQL语句并返回的int值是命令影响的数据库行数count的值为1
      //comm.CommandText = Sql3;
      //count = comm.ExecuteNonQuery();//执行删除SQL语句并返回int值是命令影响的数据库行数count的值为1
      

  2.   

    你的comm里为什么没有comm.connection=con()?
      

  3.   

    数据库连接在command中处于未打开状态,那下边的sql语句当然是无法执行的。
      

  4.   

    数据库连接在command中处于未打开状态,那下边的sql语句当然是无法执行的。
      

  5.   

      string Sql3 = "delete from Customer where CustomerID=1001";
     
     我晕你最后把他删了  当然数据库没更新
      

  6.   

     SqlCommand comm = new SqlCommand(Sql1, con);//创建和声明Command对象
      con.Open();//调用方法前打开数据库连接,可以减少数据库连接所花时间,节省数据库资源
      int count = comm.ExecuteNonQuery();//执行插入SQL语句并返回的int值是命令影响的数据库行数count的值为1
      comm.CommandText = Sql2;//重新设置comm对象要执行Sql语句
      count = comm.ExecuteNonQuery();//执行更新SQL语句并返回的int值是命令影响的数据库行数count的值为1
      comm.CommandText = Sql3;
      count = comm.ExecuteNonQuery();//执行删除SQL语句并返回int值是命令影响的数据库行数count的值为1
      con.Close();//关闭数据库连接只是第一个打开了连接,第二个和第三个都没开,不知道是不是可以这样写.....
      

  7.   

    我知道这个程序是先新建再删除的,屏蔽删除的后单独运行也没有反应额。
    加上“comm.connection=con”后还是不行,我觉得是不数DataSource里要指定一下Customer表啊,系统可以自动知道我要改哪个?求前辈指导代码
      

  8.   

    大家要不再自己电脑上试一试?再sql中建一个FastFood数据库,添加一个Customer表,列名如下:CustomerID,UserName,PassWord,RealName,HouseAddress,Phone,Email,Notes
      

  9.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;namespace WindowsFormsApplication1
    {
      public partial class Form1 : Form
      {
      public Form1()
      {
      InitializeComponent();
      }  private void Form1_Load(object sender, EventArgs e)
      {
      // TODO: 这行代码将数据加载到表“fastFoodDataSet.Customer”中。您可以根据需要移动或删除它。
        
      SqlConnection con = new SqlConnection("Data Source=yh-20120602uzvz;Initial Catalog=FastFood;Integrated Security=True");
      string Sql1 = "insert into Customer(CustomerID,UserName,PassWord) values('1001','李宏','111')";
      string Sql2 = "update Customer set name='张伟' where CustomerID=1001";
      string Sql3 = "delete from Customer where CustomerID=1001";
      SqlCommand comm = new SqlCommand(Sql1, con);//创建和声明Command对象
      //con.Open();//调用方法前打开数据库连接,可以减少数据库连接所花时间,节省数据库资源
      comm.connection=con;
      comm.connection.Open();

      int count = comm.ExecuteNonQuery();//执行插入SQL语句并返回的int值是命令影响的数据库行数count的值为1
      comm.CommandText = Sql2;//重新设置comm对象要执行Sql语句
      count = comm.ExecuteNonQuery();//执行更新SQL语句并返回的int值是命令影响的数据库行数count的值为1
      comm.CommandText = Sql3;
      count = comm.ExecuteNonQuery();//执行删除SQL语句并返回int值是命令影响的数据库行数count的值为1
      con.Close();//关闭数据库连接
      }        
      }
    }
      

  10.   

    我新建一个工程后终于能行了,谢谢大家啊!代码如下,供大家参考:
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;namespace WindowsFormsApplication3
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                // TODO: 这行代码将数据加载到表“fastFoodDataSet.Customer”中。您可以根据需要移动或删除它。            SqlConnection con = new SqlConnection("Data Source=yh-20120602uzvz\\SQLNEW;Initial Catalog=FastFood;Integrated Security=True");
                string Sql1 = "insert into Customer(CustomerID,UserName,PassWord,RealName,HouseAddress,Phone,Email,Notes) values('2010006','李宏','111111','王老五','山南路','12345674589','[email protected]','爱洗')";
                string Sql2 = "update Customer set UserName='张伟' where CustomerID=2010006";
                string Sql3 = "delete from Customer where CustomerID=2010008";
                SqlCommand comm = new SqlCommand(Sql1, con);//创建和声明Command对象
                con.Open();//调用方法前打开数据库连接,可以减少数据库连接所花时间,节省数据库资源
                comm.Connection = con;
                //comm.Connection.Open();//警告!连接未关闭。 连接的当前状态为打开。
                int count = comm.ExecuteNonQuery();//执行插入SQL语句并返回的int值是命令影响的数据库行数count的值为1
                 comm.CommandText = Sql2;//重新设置comm对象要执行Sql语句
                 count = comm.ExecuteNonQuery();//执行更新SQL语句并返回的int值是命令影响的数据库行数count的值为1
                 comm.CommandText = Sql3;
                 count = comm.ExecuteNonQuery();//执行删除SQL语句并返回int值是命令影响的数据库行数count的值为1
                 
                con.Close();//关闭数据库连接
            }
        }
    }