ado.net基础代码
2014-05-14 22:21
351 查看
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("执行完成~!");
}
}
}
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("执行完成~!");
}
}
}
相关文章推荐
- 黑马程序员---ADO.NET基础之增删改查等代码示例
- (一步步操作-一看就懂)ado.net与xml互操作的代码
- 运用 ADO.NET 对象优化数据查询代码
- ADO.NET 2.0 基础
- ado.net 集成身份验证代码
- ado.net 集成身份验证代码
- 蛙蛙推荐:asp.net中基础的数据库演练代码
- C#分析数据库结构,使用XSL模板自动生成代码 - 清清月儿 .NET万花筒 Asp.net技术 Asp.net教程 Asp.net源码 Asp.net基础 Asp.net控件 Asp.net入门 - CSDNBlog
- 常用C#代码:ADO.NET
- ADO.NET基础教程(1)
- ado.net 集成身份验证代码
- 运用ADO.NET对象优化数据查询代码
- 运用 ADO.NET 对象优化数据查询代码
- 运用 ADO.NET 对象优化数据查询代码
- 基础温习(一) ADO.NET之增删查修
- ADO.NET(Beta2)基础(1)——综述
- ADO.NET 基础教程(二)
- ADO.NET实用经验(转自代码中国)
- 在 ADO.Net 2.0 的中小型应用中,数据层代码是否还有存在的必要?
- asp.net控件开发基础示例代码打包