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("執行完成~!");
}
}
}