当前位置:编程学习 > C#/ASP.NET >>

c#语言 用Update语句更新sqlce数据库的表里的内容不成功

实现功能是点击button2显示数据至几个textbox,点击button3  update 一些字段值,点击button4 显示改变以后的内容
 显示的内容都是修改成功,但是源数据库内容始终不变啊,纠结了一天了,请大侠们帮忙啊,万分感谢各位


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.Common;
using System.Data.SqlServerCe;


namespace DeviceApplication1
{
    public partial class Form1 : Form
    {

        SqlCeConnection con = new SqlCeConnection(@"Data Source=\Program Files\DeviceApplication1\HDSQIS.sdf;Password=111");
        
       public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //string Strsql = "SELECT Part_ID, Part_BatchNo, SO_Number, SO_Date, User_ID, EPC from StockOut";

            string Strsql = "SELECT StockOut.Part_ID, StockOut.Part_BatchNo, StockOut.SO_Number, StockOut.SO_Date, StockOut.User_ID, StockOut.EPC, Part.Part_Name from StockOut inner join Part on Stockout.Part_ID = Part.Part_ID where StockOut.EPC = 2";
            SqlCeDataAdapter sda = new SqlCeDataAdapter(Strsql, con);
            DataTable dt = new DataTable();
            sda.Fill(dt); 
            textBox1.Text = dt.Rows[0][0].ToString();
            textBox2.Text = dt.Rows[0][1].ToString();
            textBox3.Text = dt.Rows[0][2].ToString();
            textBox6.Text = dt.Rows[0][5].ToString();
            textBox7.Text = dt.Rows[0][3].ToString();
            textBox8.Text = dt.Rows[0][4].ToString();
            textBox9.Text = "物料号" + dt.Rows[0][0].ToString() + "批次号" + dt.Rows[0][1].ToString() + "数量" + dt.Rows[0][2].ToString();
            textBox4.Text = dt.Rows[0][6].ToString();
      
        }

        private void button3_Click(object sender, EventArgs e)
        {
            string str = @"Data Source=\Program Files\DeviceApplication1\HDSQIS.sdf;Password=111";

            int str2 = Convert.ToInt32(this.textBox3.Text);
            int str3 = Convert.ToInt32(this.textBox5.Text);
            int str4 = str2 - str3;
            string str5 = this.textBox7.Text;
            string str6 = this.textBox8.Text;
            string str1 = "update StockOut set SO_Number='" + str4 + "',SO_Date ='" + str5.Trim() + "',User_ID='" + str6.Trim() + "' where EPC = 2";

            SqlCeConnection con = new SqlCeConnection(str);
            con.Open();
            SqlCeCommand com = new SqlCeCommand(str1, con);
             com.ExecuteNonQuery();

            //int AffectRows = com.ExecuteNonQuery();

            //if(AffectRows>0)
            //  MessageBox.Show("成功");//成功
            //else
            //  MessageBox.Show("失败");//失败
            //显示是成功的
 Form1 form1 = new Form1();
            form1.Show();
            this.Hide();
            MessageBox.Show("原库存量已修改,操作日期及操作人ID已输入");
            con.Close();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            string Strsql = "SELECT StockOut.Part_ID, StockOut.Part_BatchNo, StockOut.SO_Number, StockOut.SO_Date, StockOut.User_ID, StockOut.EPC, Part.Part_Name from StockOut inner join Part on Stockout.Part_ID = Part.Part_ID where StockOut.EPC = 2";
            SqlCeDataAdapter sda = new SqlCeDataAdapter(Strsql, con);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            textBox1.Text = dt.Rows[0][0].ToString();
            textBox2.Text = dt.Rows[0][1].ToString();
            textBox3.Text = dt.Rows[0][2].ToString();
            textBox6.Text = dt.Rows[0][5].ToString();
            textBox7.Text = dt.Rows[0][3].ToString();
            textBox8.Text = dt.Rows[0][4].ToString();
            textBox9.Text = "物料号" + dt.Rows[0][0].ToString() + "批次号" + dt.Rows[0][1].ToString() + "数量" + dt.Rows[0][2].ToString();
            textBox4.Text = dt.Rows[0][6].ToString();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“hDSQISDataSet4.StockOut”中。您可以根据需要移动或移除它。
            this.stockOutTableAdapter.Fill(this.hDSQISDataSet4.StockOut);

        }

    }
} --------------------编程问答--------------------   string str1 = "update StockOut set SO_Number='" + str4 + "',SO_Date ='" + str5.Trim() + "',User_ID='" + str6.Trim() + "' where EPC = 2";
在这句打断点  看看str1的值 
是不是sql语句有问题 --------------------编程问答-------------------- string str1 = "update StockOut set SO_Number='" + str4 + "',SO_Date ='" + str5.Trim() + "',User_ID='" + str6.Trim() + "' where EPC = 2";
判断一下Cmd.ExecuteNonQuery()的返回值。 
 
单步看看SQL语句 --------------------编程问答-------------------- 跟踪数据库 看看最终提交到数据库的sql语句
然后复制到查询分析器运行看看 --------------------编程问答-------------------- 看起来好像没啥问题,跟踪下吧。 --------------------编程问答-------------------- 没看到类成员变量con 在哪里Open的。 --------------------编程问答-------------------- 看起来好像没啥问题,跟踪下吧。 --------------------编程问答-------------------- 输出SQL语句,检查一下,把SQL语句拷贝到数据库管理工具中执行看有无错误
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,