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;namespace WindowsFormsApplication1a
{
    public partial class Form1 : Form
    {
        DataSet dt;
        public Form1()
        {
            InitializeComponent();
        }        private void Form1_Load(object sender, EventArgs e)
        {
            BindData();
        }        private void BindData()
        {
            dt = new DataSet();            //1 数据库连接字符串
            string connString = "server=.;database=stumanage;uid=sa;pwd=sa";
            //2 创建数据库连接对象
            using (SqlConnection conn = new SqlConnection(connString))
            {
                // 3 创建适配器对象
                SqlDataAdapter sda = new SqlDataAdapter("select * from classinfo", conn);                // 4 填充数据
                sda.Fill(dt, "student");
            }            dataGridView1.DataSource = dt.Tables[0].DefaultView;
        }        private void sqlConn()
        {
            string connString = "server=.;database=stumanage;uid=sa;pwd=sa";
            using (SqlConnection conn = new SqlConnection(connString))
            {
                string updataString = "updata stumanage set c_teacher=@tea where c_class=@cla";
                SqlDataAdapter sda = new SqlDataAdapter("select * from stumanage", conn);
                SqlParameter par1 = new SqlParameter("@tea", SqlDbType.NChar);
                par1.SourceColumn = "c_teacher";
                par1.SourceVersion = DataRowVersion.Original;
                SqlParameter par2 = new SqlParameter("@cla", SqlDbType.NChar);
                par2.SourceColumn = "c_class";
                par2.SourceVersion = DataRowVersion.Current;
                SqlCommand cmd = new SqlCommand(updataString, conn);
                cmd.Parameters.Add(par1);
                cmd.Parameters.Add(par2);
                sda.UpdateCommand = cmd;
                sda.Update(dt, "student");
            }
        }        private void button1_Click(object sender, EventArgs e)
        {
            sqlConn();
        }
    }
}

解决方案 »

  1.   

    参数没有发现问题,命令错了:"updata stumanage set c_teacher=@tea where c_class=@cla";
      

  2.   

    c_teacher这个数据库字段 我用的 Original 原始值 
    c_class 这个我用的 Current 当前值  这两个值怎么去理解?
    我好像用反了的样子..用 原始值去更新数据库的 值 那不是等于没更新?
      SqlDataAdapter sda = new SqlDataAdapter("select * from stumanage", conn);
    sda有构造函数 查询语句 那么调用sda更新后就直接再次查询了?  新手有太多的疑问。 大家帮下忙哦!!
      

  3.   

    string updataString = "updata stumanage set c_teacher=@tea where c_class=@cla";
    UPDATE
    你那些参数都是整形??应该要用''引起来吧
      

  4.   

    参数没有发现问题,命令错了:"update stumanage set c_teacher=@tea where c_class=@cla";
      

  5.   

    SqlDbType.NChar
    一般都用
    SqlDbType.Nvarchar
      

  6.   

    参数列表使用没错呀,
    Update
      

  7.   

          private void upDateGridView()
            {
                string connString = "server=.\\SQLEXPRESS;database=stumanage;uid=sa;pwd=sa";
                using (SqlConnection conn = new SqlConnection(connString))
                {
                    string updataString = "update studentinfo set stu_class =@class where stu_name=@name";
                    SqlDataAdapter sda = new SqlDataAdapter("select * from studentinfo",conn);
                    SqlParameter par1 = new SqlParameter("@class", SqlDbType.NVarChar);
                    par1.SourceColumn = "stu_class";
                    par1.SourceVersion = DataRowVersion.Current;
                    SqlParameter par2 = new SqlParameter("@name", SqlDbType.NVarChar);
                    par2.SourceColumn = "stu_name";
                    par2.SourceVersion = DataRowVersion.Original;
                    SqlCommand cmd = new SqlCommand(updataString, conn);
                    cmd.Parameters.Add(par1);
                    cmd.Parameters.Add(par2);
                    sda.UpdateCommand = cmd;
                    sda.Update(dt,"student");
                }
            }怎么还是无法更新dataGridView啊?   stu_class和 stu_name  都是nvarchar类型的大家跟我看看吧。 没分提问了
      

  8.   

    这个是把DataGridView绑定的DataTable的修改更新到数据库,不是更新DataGridView本身。
      

  9.   

                    sda.UpdateCommand = cmd;
                    sda.Update(dt,"student");
    不要这两句,换成:cmd.ExecuteNonQuery();
      

  10.   

    呵呵 我想起了刚学ADO.NET的时候就是这种编程套路 不过现在已经不用了
      

  11.   

    写太复杂了, 没必要 很啰唆啊.. SqlParameters要这么用SqlCommand sc=new SqlCommand("connect string");
    sc.CommandString="select * from user where name=@aaa";
    sc.Parameters.Add("@aaa",SqlDataType.VarChar,20).Value="abc";
    ...用SqlAdapter也是一样的.
      

  12.   

    没给SqlParameter赋值吧,是不是要加上par2.value=值吧