ADO.NET

1 ADO.NET实际上就是一些什么东西
类库
2 ADO.NET处理sql server 的数据库使用的命名空间是什么
system.data.sqlclient
ado.net常见的类库
sqlconnection 链接数据库
sqlcommand 执行sql语句

链接字符串怎么写
server=机器名\实例名 ;database=数据库名;uid=用户名;pwd=密码(integrated security=true)
如何启用sql server的身份验证

处理使用数据库,使用的方法有哪些
ExecuteNonQuery() 执行增删改并返回受影响的行数
ExecuteAcalar() 执行查询,返回object类型的第一个结果
------------------------------------
数据库增删改查读
增删改用 int res=cmd.ExecuteNonQuery(); 返回int类型 几行受影响 查 object o=cmd.ExecuteScalar() 返回object类型
读取数据库数据 SqlDatareader reader= cmd.ExecuteReader(); 返回读取到的数据,下面有例题,可参考
------------------------------------
创建电话练习数据
求所有数据中通话时间最长的5条记录
查询所有的通话时间
select datediff(milltsecond,startdatetime,enddatetime) from callrecords
排序 select top 5 * from callrecords order by datediff(milltsecond,startdatetime,enddatetime)

查询所有长途电话以0开头的总时长
select sum(datediff(milltsecond,startdatetime,enddatetime)) as 长途电话总时长 from callrecords where telnum like'0%'

输出本月通话总时长最多的前三个呼叫员的编号
利用呼叫员分组
select callernumber from callrecords group by callernumber
由于是要求总时长,所以计算时长,利用聚合函数求和
select callernumber from callrecords where datediff(month,startdatetime,'2012-07-031')=0 group by order by sum(datediff(milltsecond,startdatetime,enddatetime))

输出本月拨打次数最多的话务员编号
select callernumber ,count(callernumber) from callrecords where datediff(month,startdatetime,'2012-07-031')=0 group by callernumber order by count(callernumber)
--------------------------------------
修改
cmd.CommandText 获取和设置cmd执行的语句
例子
string sql = string.Format(@"select pwd from UseLogin where name='{0}'"
SqlCommand cmd = new SqlCommand(sql, conn)
cmd.CommandText = string.Format("update tbluselogin set pwd ='{0}' where name = '{1}'", textBox3.Text.Trim(), textBox1.Text.Trim());
int res = cmd.ExecuteNonQuery();

----------------------
读取数据用ExecuteReader()
SqlDataReader reader=cmd.ExecuteReader();
reader.Hasrows 返回布尔值 是否包含一行或多行数据
// 调用一个Read方法,进行读取数据
使用Get方法得到数据
int id = reader.GetInt32(0);
string name = reader.GetString(1);
string pwd = reader.GetString(2);
--------------
查询一行数据 string sql=@"select id,name,pwd from tabuselogin where id=1";
string strconn=File.ReadAllText("conn.txt");
using(SqlConnection conn=new SqlConnection(strconn))
{
using(SqlCommand cmd=new SqlCommand(sql,conn))
{
if(conn.State==system.Data.Connecntate.Closed)
{
conn.Open();
}
//读取多个数据使用ExecuteReader()
SqlDataReader reader=cmd.ExecuteReader();
//几乎全是读取得到数据的方法
//使用ExecuteReadder读取数据,返回给DataReader对象,由他取出想要的数据
if(reader.HasRows) //判断是否包含一行或多行,返回布尔值
{
//调用一个read方法,进行读取数据
reader.read();
int id=reader.GetInt32(0);
string name=reader.Getstring(1);
string pwd=reader.Getstring(2);
}
}
}

-----------------------
配置文件
连接字符串使用配置文件
添加connectionstring节点(name,connectionstring)
添加引用configuration
使用静态类configurationmanager

右键添加配置文件 APP.config 配置文件里可以放置多个连接字符串,需要的时候通过索引获得
文件里写入<connectionString><add name="sql(索引)" connectionString="server=SAMSUNG;database=数据库名;integrated security=true"></connectionString>
添加引用 引用位置右键添加 net中添加COnfiguration 命名空间再引用
string str=Configurationmanager.ConnectionString["sql"].ConncetionString;
------------------------
读取多行数据
using(conn)
{
using(cmd)
{
conn.Open();

SqlDataReader reader=cmd.ExecuteReader();
using(reader)
{
if(reader.Hasrows) //判断是否包含一行或多行,返回布尔值
{
while(reader.read()) //reader.read 读取一条数据并返回布尔值
{
int id=reader.GetInt32(0);
string name=reader.Getstring(1);
string pwd=reader.Getstring(2);
}
}
}
}
}
---------------下午---------------------------
完成登录

首先创建数据库(未完)
using Mydatabase
go
if (object_id('tbllogin','U'))is not null
drop table tbllogin
create table tbllogin
(
fid int identity(1,1) primary key,
fname nvarchar(10)
)
winfrom
主应用程序入口点
Login l=new Login();
if(l.ShowDialog()==DialogResult.OK)
{
Application.Run(new From1()fg );
}------------------------------
参数化查询 是防止注入漏洞攻击
string sql=@"select count(*) from tbl where fname=@name and fpwd=@pwd";
cmd.Parameters.Clear();
cmd.Parameters.Add(new SqlParameter("@name",txtuid.Text.Trim()));
cmd.Parameters.AddWithValue("@pwd",txtpwd.Text.Trim);

-----------------------
参数化练习

配置文件
<connectionStrings>
<add name="sql" connectionString="server=SAMSUNG-PC;database=Mywork;integrated security=true"/>
</connectionStrings>

StreamReader reader=new StreamReader("name1.txt");
using(reader)
{
string str=ConfigurationManager.ConnectionString["sql"].ConnectionString;
string sql=@"insert into tblperson(name,age,gender)values(@name,@age,@gender)";
using(SqlConnection conn=new SqlConnection(str))
{
using(SqlCommand cmd=new SqlCommand(sql,conn))
{
if(conn.State==ConnectionState.Closed)
{
conn.Open();
}
int count=0;
string res=string.Empty;
while((res=reader.ReadLine())!=null)
{
string[] temp=res.Split(new char[]{'\t'},StringSplitOptions.RemoveEmptyEntries)
if(temp.Length!=3)
{
continue;
}
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@name",temp[0]);
cmd.Parameters.Add(new SqlParameter("@age",Convert.ToInt32(temp[2])));
cmd.Parameters.Add(new SqlParameterr("@gender",temp[1]));
count+=cmd.ExecuteNonQuery();
}
}
}
}

 

 

 

 

转载于:https://www.cnblogs.com/chong520/archive/2012/09/18/2689921.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值