ADO.Net基础/连接SQLServer/ExecuteNoQuery()/ExecuteScalar
2012-10-18 18:34
381 查看
ADO.Net基础
程序要和数据交互要通过ADO.Net进行,通过ADO.Net就能在程序中执行
SQL了。 ADO.Net中提供了对各种不同数据的统一操作接口。
直接在项目中内嵌mdf文件的方式使用SQLServer数据库(基于服务的数据
库)。 mdf文件随着项目走,用起来方便,和在数据库服务上创建数据库
没什么区别,运行的时候会自动附加(Attach)。
双击mdf文件会在“服务器资源管理器”中打开,管理方式和在
Management Studio没有什么本质不同。要拷贝mdf文件需要关闭所有指向
mdf文件的连接。
正式生产运行的时候到附加SQLServer上、修改连接字符串即可,除此之
外没有任何的区别,在“数据库”节点上点右键“附加”;在数据库节点
上任务分离就可以得到可以拷来拷去mdf文件。
用的时候要在控制台、WinForm项目中在Main函数最开始的位置加入备注
中的代码。ASP.Net项目中不需要。
连接SQLServer
连接字符串:程序通过连接字符串指定要连哪台服务器上的、哪个实例的
哪个数据库、用什么用户名密码等。
项目内嵌mdf文件形式的连接字符串“Data Source=.
\SQLEXPRESS;AttachDBFilename=|DataDirectory|
\Database1.mdf;Integrated Security=True;User Instance=True”。
“.\SQLEXPRESS”表示“本机上的SQLEXPRESS实例”,如果数据库
实例名不是SQLEXPRESS,则需要修改。” Database1.md“f为mdf的文件
名。
ADO.Net中通过SqlConnection类创建到SQLServer的连接,
SqlConnection代表一个数据库连接, ADO.Net中的连接等资源都实现了
IDisposable接口,可以使用using进行资源管理,执行备注中的代码如果
成功了就 ok。
可能遇到的错误
1、由于 启动用户实例的进程时出错,导致无法生成SQLServe的用户实例
。
http://wenwen.soso.com/z/q15616823.htm
2、版本太低,只支持2005及以下数据库。解决:安装VisualStudio 2008
SP1.
3、启动超时。多试几次
执行简单的Insert语句
SqlCommand表示向服务器 提交的命令(SQL语句等)CommandText属性为
要执行的SQL语句,Execute NonQuery方法执行一个非查询语句(Update
、Insert、Delete等)
Using(SqlCommand cmd=conn.CreateCommand())
{
cmd.CommandText=“Insert into T_Users(UserName.Password)
values (’admin’,’888888’)”;
cmd ExecuteNonQuery();
}
ExecuteNonquery返回值是执行的影响行数
常犯错:
string username=‘test’;
…….
cmd.CommandText=“Insert into T_Users(UserName.Password) values
(’username’,’888888’)”;
ExecuteNoQuery()
SqlCommand表示向服务器 提交的命令(SQL语句等)CommandText属性为
要执行的SQL语句,Execute NonQuery方法执行一个非查询语句(Update
、Insert、Delete等)
Using(SqlCommand cmd=conn.CreateCommand())
{
cmd.CommandText=“Insert into T_Users(UserName.Password)
values (’admin’,’888888’)”;
cmd ExecuteNonQuery();
}
ExecuteNonquery返回值是执行的影响行数
常犯错:
string username=‘test’;
…….
cmd.CommandText=“Insert into T_Users(UserName.Password) values
(’username’,’888888’)”;
ExecuteScalar
SqlCommand 的一个方法,用于执行查询,返回查询中返回的结果 集中的
第一行 第一列 。
1)
Output inserted.id
执行有多行结果集的用ExecuteReader();
SqlDataReader
Cmd.executeNoQuery()
Cmd.executeReader()
SqlDataReader reader=cmd.ExecuteReader();
While(reader.Read())
{
Console.writeline(reader.GetString(1));
}
Reader 有方法 GetString,GetInt32等方法,他的参数都是整数,序号
。GetOrdinal方法,根据列名动态得到序号。
执行有多行结果集的用ExecuteReader();
Reader 有方法 GetString,GetInt32等方法,他的参数都是整数,序号
。GetOrdinal方法,根据列名动态得到序号。
string source = @"Data Source=.\SQLEXPRESS;AttachDBFilename=|
DataDirectory|\Database1.mdf;Integrated Security=True;User
Instance=True";
using(SqlConnection conn=new SqlConnection(source) )
{
conn.Open();
using (SqlCommand com = conn.CreateCommand())
{
/* com.CommandText = "Insert into T_User
(name,age,nikaname)values('YOYO',20,'PPP')";
com.ExecuteNonQuery();
Console.WriteLine("插入成功!");
*/
com.CommandText = "select * from T_user";
SqlDataReader reader = com.ExecuteReader();
while (reader.Read())
{
string username = reader.GetString
(reader.GetOrdinal("name"));
int age = reader.GetInt32
(reader.GetOrdinal("age"));
Console.WriteLine("Uname={0},Uage=
{1}",username,age);
}
}
}
Console.WriteLine("打开了!");
Console.ReadKey();
}
程序要和数据交互要通过ADO.Net进行,通过ADO.Net就能在程序中执行
SQL了。 ADO.Net中提供了对各种不同数据的统一操作接口。
直接在项目中内嵌mdf文件的方式使用SQLServer数据库(基于服务的数据
库)。 mdf文件随着项目走,用起来方便,和在数据库服务上创建数据库
没什么区别,运行的时候会自动附加(Attach)。
双击mdf文件会在“服务器资源管理器”中打开,管理方式和在
Management Studio没有什么本质不同。要拷贝mdf文件需要关闭所有指向
mdf文件的连接。
正式生产运行的时候到附加SQLServer上、修改连接字符串即可,除此之
外没有任何的区别,在“数据库”节点上点右键“附加”;在数据库节点
上任务分离就可以得到可以拷来拷去mdf文件。
用的时候要在控制台、WinForm项目中在Main函数最开始的位置加入备注
中的代码。ASP.Net项目中不需要。
连接SQLServer
连接字符串:程序通过连接字符串指定要连哪台服务器上的、哪个实例的
哪个数据库、用什么用户名密码等。
项目内嵌mdf文件形式的连接字符串“Data Source=.
\SQLEXPRESS;AttachDBFilename=|DataDirectory|
\Database1.mdf;Integrated Security=True;User Instance=True”。
“.\SQLEXPRESS”表示“本机上的SQLEXPRESS实例”,如果数据库
实例名不是SQLEXPRESS,则需要修改。” Database1.md“f为mdf的文件
名。
ADO.Net中通过SqlConnection类创建到SQLServer的连接,
SqlConnection代表一个数据库连接, ADO.Net中的连接等资源都实现了
IDisposable接口,可以使用using进行资源管理,执行备注中的代码如果
成功了就 ok。
可能遇到的错误
1、由于 启动用户实例的进程时出错,导致无法生成SQLServe的用户实例
。
http://wenwen.soso.com/z/q15616823.htm
2、版本太低,只支持2005及以下数据库。解决:安装VisualStudio 2008
SP1.
3、启动超时。多试几次
执行简单的Insert语句
SqlCommand表示向服务器 提交的命令(SQL语句等)CommandText属性为
要执行的SQL语句,Execute NonQuery方法执行一个非查询语句(Update
、Insert、Delete等)
Using(SqlCommand cmd=conn.CreateCommand())
{
cmd.CommandText=“Insert into T_Users(UserName.Password)
values (’admin’,’888888’)”;
cmd ExecuteNonQuery();
}
ExecuteNonquery返回值是执行的影响行数
常犯错:
string username=‘test’;
…….
cmd.CommandText=“Insert into T_Users(UserName.Password) values
(’username’,’888888’)”;
ExecuteNoQuery()
SqlCommand表示向服务器 提交的命令(SQL语句等)CommandText属性为
要执行的SQL语句,Execute NonQuery方法执行一个非查询语句(Update
、Insert、Delete等)
Using(SqlCommand cmd=conn.CreateCommand())
{
cmd.CommandText=“Insert into T_Users(UserName.Password)
values (’admin’,’888888’)”;
cmd ExecuteNonQuery();
}
ExecuteNonquery返回值是执行的影响行数
常犯错:
string username=‘test’;
…….
cmd.CommandText=“Insert into T_Users(UserName.Password) values
(’username’,’888888’)”;
ExecuteScalar
SqlCommand 的一个方法,用于执行查询,返回查询中返回的结果 集中的
第一行 第一列 。
1)
Output inserted.id
执行有多行结果集的用ExecuteReader();
SqlDataReader
Cmd.executeNoQuery()
Cmd.executeReader()
SqlDataReader reader=cmd.ExecuteReader();
While(reader.Read())
{
Console.writeline(reader.GetString(1));
}
Reader 有方法 GetString,GetInt32等方法,他的参数都是整数,序号
。GetOrdinal方法,根据列名动态得到序号。
执行有多行结果集的用ExecuteReader();
Reader 有方法 GetString,GetInt32等方法,他的参数都是整数,序号
。GetOrdinal方法,根据列名动态得到序号。
string source = @"Data Source=.\SQLEXPRESS;AttachDBFilename=|
DataDirectory|\Database1.mdf;Integrated Security=True;User
Instance=True";
using(SqlConnection conn=new SqlConnection(source) )
{
conn.Open();
using (SqlCommand com = conn.CreateCommand())
{
/* com.CommandText = "Insert into T_User
(name,age,nikaname)values('YOYO',20,'PPP')";
com.ExecuteNonQuery();
Console.WriteLine("插入成功!");
*/
com.CommandText = "select * from T_user";
SqlDataReader reader = com.ExecuteReader();
while (reader.Read())
{
string username = reader.GetString
(reader.GetOrdinal("name"));
int age = reader.GetInt32
(reader.GetOrdinal("age"));
Console.WriteLine("Uname={0},Uage=
{1}",username,age);
}
}
}
Console.WriteLine("打开了!");
Console.ReadKey();
}
相关文章推荐
- ADO.NET - 1.基础(SqlCommand\ExecuteScalar\ExecuteReader\sqlDataAdapter)
- VS2010/VS2013项目创建 ADO.NET连接mysql/sql server详细步骤
- VS2010/VS2013项目创建 ADO.NET连接mysql/sql server详细步骤
- com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败。 java.net.NoRouteToHostException
- Execute .NET Code under SQL Server 2005
- SQL SERVER Window身份验证模式 ASP.NET连接
- Microsoft SQL Server Compact 4.0&&ADO.NET Entity Framework 4.1&&MVC3
- 概括ADO.NET数据库连接的所有形式(基础)
- 多表左连接查询-MS-SQLServer/基础类
- SQL Server.net 和 OLE DB.net连接数据库的比较
- ADO.NET 2.0中的SqlCommand.ExecutePageReader
- SQL Server .NET Framework 数据提供程序连接池
- 黑马程序员_学习日记47_615数据库开发及ADO.Net(连接字符串、SqlDataReader对象、连接池)
- ADO.NET 对 Microsoft SQL Server 的事务逻辑
- SQL Server Connection Pooling (ADO.NET)
- SQLSERVER ExecuteScalar
- ADO.NET中的sql连接
- 关于ADO.NET,只须一个连接,一条SQL语句,轻松实现增删改查
- 概括ADO.NET中Database 数据库连接形式(基础)
- SQL Server XML基础学习之<5>--XQuery(query)