DataSet 和Adapter批量更新数据库


 DataTable table = MyGrid.DataSource as DataTable;
            string Sql = @"select [name], age, sex, ramk, [int] from tPerson";
            //创建适配器:
            //1.填充数据,[连接适配器自动管理]
            //2.一次性保存数据
            using (SqlDataAdapter adp = new SqlDataAdapter(Sql, connStr))
            {   //SqlCommandbuilder创建增删改操作,row行的改变触发事件。
                using(SqlCommandBuilder scb = new SqlCommandBuilder(adp))
                {
                     DataSet ds = new DataSet();
                     adp.Update(table);
                }
            }
DataSet的使用
class Program
    {
        public static string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
        static void Main(string[] args)
        {
            string Sql = "select * from tPerson";
            using (SqlDataAdapter adp = new SqlDataAdapter(Sql, connStr))
            {
               DataSet ds = new DataSet();
               adp.Fill(ds,"tPerson");
               foreach(DataTable table in ds.Tables)
               {
                   foreach(DataRow row in table.Rows)
                   {
                       Console.WriteLine(row[0]);
                   }
               }
            }
        }
    }

DataSet与DataTable的关系:
        private void button2_Click(object sender, EventArgs e)
        {
            DataSet ds = new DataSet();
            DataTable table = new DataTable("MyTable");
            DataColumn colId = new DataColumn("ID",typeof(int));
            DataColumn colName = new DataColumn("name", typeof(string));
            DataColumn colAge = new DataColumn("age", typeof(int));

            table.Columns.Add(colId);
            table.Columns.Add(colName);
            table.Columns.Add(colAge);

            DataRow row1 = table.NewRow();
            row1[colId] = 1;
            row1[colName] = "张三";
            row1[colAge] = 22;

            table.Rows.Add(row1);


            ds.Tables.Add(table);

            this.dataGridView1.DataSource = ds.Tables["MyTable"];
        }

//批量读取和增删改
namespace DateSet
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        string connStr = @"Data Source=WJ7BBN8FSFEM17I\TESTDAT;Initial Catalog=Person;Integrated Security=True";
        
        private void btnLoad_Click(object sender, EventArgs e)
        {
            string Sql = @"select [name], age, sex, ramk, [int] from tPerson";
            using(SqlDataAdapter ap = new SqlDataAdapter(Sql,connStr))
            {
                DataSet dataSet = new DataSet();
                ap.Fill(dataSet,"tPerson");
                this.MyGrid.DataSource = dataSet.Tables[0];
            }
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            DataTable table = MyGrid.DataSource as DataTable;
            string Sql = @"select [name], age, sex, ramk, [int] from tPerson";
            //创建适配器:
            //1.填充数据,[连接适配器自动管理]
            //2.一次性保存数据
            using (SqlDataAdapter adp = new SqlDataAdapter(Sql, connStr))
            {   //SqlCommandbuilder创建增删改操作,row行的改变触发事件。
                using(SqlCommandBuilder scb = new SqlCommandBuilder(adp))
                {
                     DataSet ds = new DataSet();
                     adp.Update(table);
                }
            }
        }
        //单列更新,手动写command对象
        private void button1_Click(object sender, EventArgs e)
        {
            DataTable table = MyGrid.DataSource as DataTable;
            string Sql = @"select [name], age, sex, ramk, [int] from tPerson";
            //更新单行
            using (SqlDataAdapter adp = new SqlDataAdapter(Sql, connStr))
            {
                string sql2 = "update tPerson set [age] = @age where [name] = @name";
                adp.UpdateCommand = new SqlCommand(sql2, adp.SelectCommand.Connection);
               // adp.UpdateCommand.Connection = adp.SelectCommand.Connection;
                //adp.UpdateCommand.CommandText = sql2;
                adp.UpdateCommand.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar, 50, "name"));
                adp.UpdateCommand.Parameters.Add(new SqlParameter("@age", SqlDbType.NVarChar, 50, "age"));
                adp.Update(table);
            }
        }
    }
}
View Code

优质内容筛选与推荐>>
1、C++ 指针
2、iOS7 文本转语音 AVSpeechSynthesizer -转载-
3、【转载】《周一清晨的领导课》读书笔记!!!
4、积水问题之种子填充算法
5、jquery操作class属性


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn