linq to sql 简单的增删改查例子。

简单的学习了一下linq to sql  并亲手制作了一个例子。

第一步:先创建数据库 TestLinToSql 并创建了表 table  其中包括三个字段,guid、name、id。我用的是sql2008数据库。

第二步:创建一个项目 TestLinq ,并在解决方案中增加类库 DataSql。

第三步:在 DataSql 类库中增加 LINQ to SQL 类 DataLinq.dbml。

第四步: 点击服务器资源管理器,右键添加连接把服务器的ip地址填上,确定就可以。

第五步:把需要的表拖拽到 DataLinq.dbml页面中。

结构如图:

第六步:就是去创建页面,实现增删改查的功能了。

页面加载时候的操作:

 //记住要在项目中引用 System.Linq 否则会报:错误 1 类型“System.Data.Linq.DataContext”在未被引用的程序集中定义。
        DataLinqDataContext ddc = new DataLinqDataContext();
        //DataLinqDataContext ddc = new DataLinqDataContext("server=10.11.43.74;database=TestLinToSql;uid=sa;pwd=sa");//重载方式连接数据库
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Bind();
                this.TextBox1.Text = Guid.NewGuid().ToString();
            }
           
        }

        private void Bind()
        {
            this.GridView1.DataSource = from p in ddc.table select p;
            this.GridView1.DataBind();
        }

插入数据库的操作:

 /// <summary>
        /// 新增按钮 问题:如果提示表没有主键 就把dbml中的表删除,然后在重新拖拽进去就可以。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            table tb = new table();//数据库实例
            tb.guid = TextBox1.Text;
            tb.name = TextBox2.Text;
            ddc.table.InsertOnSubmit(tb);//插入数据库
            ddc.SubmitChanges();
            Bind();

        }

更新数据库操作:

 /// <summary>
        /// 更新按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnEdit_Click(object sender, EventArgs e)
        {
            table tbup = ddc.table.FirstOrDefault(p => p.guid == this.TextBox1.Text);//获取要更新字段的主键
            tbup.name = TextBox2.Text;//要更新的内容
            ddc.SubmitChanges();
            Bind();
        }

删除数据库操作:

 /// <summary>
        /// 删除
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnDel_Click(object sender, EventArgs e)
        {
            table tbup = ddc.table.FirstOrDefault(p => p.guid == this.TextBox1.Text);//获取要更新字段的主键
            ddc.table.DeleteOnSubmit(tbup);//删除语句
            ddc.SubmitChanges();
            Bind();
        }

 linq to sql 多表联合查询例子:

 this.GridView1.DataSource = from p in ddc.table join b in ddc.table2 on p.guid equals b.guid //联合查询 join 相当于 inner join
                                        into g
                                        from j in g.DefaultIfEmpty()
                                        select new { guid = p.guid,name = p.name,clas = j.clas};//必须把要显示的字段全部都写在这里。

 

至于在开发中选择SQL的方式还是选择Linq to SQL 可以根据具体的需求和上网看看他们之间的优缺点就知道了。。

posted on 2013-05-04 13:48  小东北  阅读(451)  评论(0编辑  收藏  举报