日期:2014-05-18  浏览次数:20728 次

保存不进去
string sql = "select monthY,ProcessID,WorkReward,OtherReward,AveReward,Persons,CalcDate,Remarks from MonthPreReward";// where monthY='" + monthy + "'";
  SqlConnection con = new SqlConnection(Config.ConnectionString);
  SqlDataAdapter ada = new SqlDataAdapter(sql, con);
  dt = new DataTable();
  ada.Fill(dt);
  dgview.DataSource = dt.DefaultView;

string sql = @"select monthY,ProcessID,WorkReward,OtherReward,AveReward,Persons,CalcDate,Remarks from MonthPreReward";
  SqlConnection con = new SqlConnection(Config.ConnectionString);
  SqlDataAdapter ada = new SqlDataAdapter(sql, con);
  SqlCommandBuilder build = new SqlCommandBuilder(ada);
  ada.Update(dt);
  MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
谁帮我看看这点代码,上面是加载,下面是保存,不知道为什么保存不进去,总是出错
提示说datatable为空,加载的时候明明有东西了,dt是个公有的datatable


------解决方案--------------------
你下面的保存,为什么又new了一个 SqlDataAdapter ada 啊,如果要保存也应该是针对上面那个保存啊
------解决方案--------------------
怎么 2个SqlDataAdapter 了 我写了个demo 你看看
C# code

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;
using System.Data.Common;

namespace qqq
{
    public partial class dateset : Form
    {
        public dateset()
        {
            InitializeComponent();
        }

        SqlConnection conn;
        SqlDataAdapter sda;
        DataSet ds;
        int m;
        private void dateset_Load(object sender, EventArgs e)
        {
            conn = new SqlConnection("Data Source=.;Initial Catalog=TQMS_QuestionManager;User ID=sa;Password=123");
            SqlCommand cmd = new SqlCommand("select * from  dbo.TQ_UserInfo", conn);
            sda = new SqlDataAdapter();
            sda.SelectCommand = cmd;
            ds = new DataSet();
            sda.Fill(ds, "aaaa");
            dataGridView1.DataSource = ds.Tables[0];
            bnt2.Visible = false;
            groupBox2.Visible = false;
            m = 1;
        }

        private void btn1_Click(object sender, EventArgs e)
        {
            conn=new SqlConnection("Data Source=.;Initial Catalog=TQMS_QuestionManager;User ID=sa;Password=123");
            SqlCommand cmd = new SqlCommand("select * from  dbo.TQ_Chapters",conn);
            sda = new SqlDataAdapter();
            sda.SelectCommand = cmd;
            ds = new DataSet();
            sda.Fill(ds,"bbb");
            dataGridView1.DataSource = ds.Tables[0];
            groupBox1.Visible = false;
            groupBox2.Visible = true;
            btn1.Visible = false;
            bnt2.Visible = true;
            m = 2;
        }

        private void update_Click(object sender, EventArgs e)
        {
            DataTable dt = ds.Tables["aaaa"];
            sda.FillSchema(dt, SchemaType.Mapped);
            DataRow dr = dt.Rows.Find(TxtID.Text);
            dr["TQ_UserName"] = txtName.Text.Trim();
            dr["TQ_TureName"]=txtTureName.Text.Trim();
            dr["TQ_UserPwd"]=txtPassWord.Text.Trim();
            dr["TQ_Email"]=txtEmail.Text.Trim();
            dr["TQ_UserType"] = txtUserType.Text.Trim();
            SqlCommandBuilder cmdbuilder = new SqlCommandBuilder(sda);
            sda.Update(dt);
            MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK,MessageBoxIcon.Information);

        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventAr