string sql = "select monthY,ProcessID,WorkReward,OtherReward,AveReward,Persons,CalcDate,Res 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,Res 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
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,Res 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
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, DataGridViewCellEventArgs e)
{
if(m == 1)
{
TxtID.Text = dataGridView1.SelectedCells[0].Value.ToString();
txtName.Text = dataGridView1.SelectedCells[1].Value.ToString();
txtTureName.Text=dataGridView1.SelectedCells[2].Value.ToString();
txtPassWord.Text = dataGridView1.SelectedCells[3].Value.ToString();
txtEmail.Text = dataGridView1.SelectedCells[4].Value.ToString();
txtUserType.Text = dataGridView1.SelectedCells[5].Value.ToString();
}
else
{
txtChapterID.Text = dataGridView1.SelectedCells[0].Value.ToString();
txtChapterName.Text = dataGridView1.SelectedCells[1].Value.ToString();
txtCourseID.Text = dataGridView1.SelectedCells[2].Value.ToString();
}
} private void bnt2_Click(object sender, EventArgs e)
{
dateset_Load(sender,e);
btn1.Visible = true;
bnt2.Visible = false;
groupBox1.Visible = true;
groupBox2.Visible = false;
}
}
}
我在dgv里面输入一行之后,把焦点移到别的行上点保存就可以保存进去,要是不移,焦点还在当前行(就是刚才输入的行)点保存就保存不进去,
说明一下,
保存时我调用过dgview.EndEdit();
不明白这是为什么,求高手现身
这个dt 估计你在别的地方不小心给清了你再定义个 dt1
加载的时候后面加个 dt1= dt
然后
ada.Update(dt1);
这dt1是新定义的,不可能被清了,试试吧
如果不是那就说明是后台数据没及时更新。所以你想哥办法主动更新后台下;如果不是拿我就不清楚了
我的意思是 你再定义一个公有的dt1,加载的时候 让dt1=dt,
然后在保存的时候 ada.Update(dt1);
看看dt1里面是否有内容,
这是你代码里新定义的datatable,除了这两个地方没别的地方用到ada.Update(dt1)中
如果dt1有值说明你代码中 不知道什么操作把原来的 dt的内容清了,
如果没值就是和dgview.EndEdit()这个方法有关呗