ado.net基礎代碼

sqlserver2008數據庫腳本:

USE [DemoDB]
GO
/****** Object:  Table [dbo].[T_Student]    Script Date: 05/14/2014 22:19:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[T_Student](
	[id] [int] NOT NULL,
	[name] [varchar](50) NOT NULL,
	[age] [char](10) NOT NULL,
	[aihao] [varchar](50) NULL,
	[height] [char](20) NOT NULL,
	[addId] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO


WPF中C#代碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Data.SqlClient;

namespace WPFDemo01
{
    /// <summary>
    /// ADOBasic.xaml 的交互邏輯
    /// </summary>
    public partial class ADOBasic : Window
    {
        public ADOBasic()
        {
            InitializeComponent();
        }

        private void btnLink_Click(object sender, RoutedEventArgs e)
        {
             //對實現了IDisposible接口的,使用using關鍵字,它能控制對資源的釋放,具體的自行百度。語法是
            //using(類型d = new (這裏面指的是創建對象)......){.................}他可以自動回收資源,不用自己關閉數據庫
            //以後都這麼寫,conn.close();的方法前面程序掛掉了,那麼數據庫就沒有關,這樣時間久了會造成數據庫泄露

            //SqlConnection建立和數據庫的連接

            //1.第一種,ExecuteNonQuery()通常用來執行Update,Delete,Insert語句,就如單詞所示NonQuery,非查詢!
            //using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=DemoDB;User ID=sa;Password=540469505")) 
            //{
            //    conn.Open();
            //    MessageBox.Show("數據庫連接成功!");
            //    //通過連接創建一個向數據庫發命令(command)的對象
            //    using(SqlCommand cmd = conn.CreateCommand())
            //    {
            //        //CommandText爲要執行的sql語句
            //        cmd.CommandText = "insert into T_Student(id,name,age,aihao,height) values (101,'劉亦菲',23,'北京吧',170);";
            //        cmd.ExecuteNonQuery();  //開始執行
            //    }
            //}

            //2.第二種,查詢用
            using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=DemoDB;User ID=sa;Password=540469505")) 
            {
                conn.Open();
                using(SqlCommand cmd = conn.CreateCommand())
                {
                    //例1:
                    //cmd.CommandText="select count(*) from T_Student";
                    //ExecuteScalar()返回的是一行一列的值使用該類型,意思就是查詢的結果只有一個,
                    //因爲其返回的是object類型,所以根據我們返回的實際類型可以進行強制類型轉換,
                    //這裏一定要寫對對應類型,比如數據庫中的varchar類型對應C#中的是string,
                    //bigint類型對應的是long類型
                    //int i =(int)cmd.ExecuteScalar(); 
                    //MessageBox.Show("查詢到結果數爲:"+i+"條");

                    //例2:
                    //cmd.CommandText = "select 'dafa'";
                    //string s = (string)cmd.ExecuteScalar();
                    //MessageBox.Show(s);


                    //例3:
                    //本數據庫中自增長字段爲addId,其值是數據庫自動分配的,
                    //那麼我們如何得知本數據的addId是多少呢?
                    cmd.CommandText = "insert into T_Student(id,name,age,aihao,height) output inserted.addId values (10000,'離死',102,'',80)";
                    int i = (int)cmd.ExecuteScalar();
                    MessageBox.Show("當前addId爲:"+i);
                }
            }

            MessageBox.Show("執行完成~!");
        }
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章