关于c#中连接sql server问题:command,datareader,dataadapter,
发布网友
发布时间:2022-04-09 21:36
我来回答
共4个回答
懂视网
时间:2022-04-10 01:58
system configuration
configurationManager.AppSettings[“”]
<appSetings>
<add key=“” value=“”>
</appSetings>
<connectionStrings>
<add key=“” connectionString=“”>
</connectionString>
configurationManager.connecSring[“”].ConnectionString
ExcuteScalar();
SqlDataReader reader=ExcuteReader(); Reader 指针,指向表头
reader.Read();
生产者消费者问题-----sql connection的连接池
httoapplication ——————对象池技术
App.config里面添加配置文件
while(reader.Read())
{
}
string conStr=configurationManage.connectionStrings[].connectionstring;
string filename=string.empty;
using(SaveFileDialog std=new SaveFileDialog())
{
filename=std.Filename;
}
StreamWriter writer=new StreamWriter(filename)
writer.WriteLine(“”)
reader.HasRows //reader 一个属性。。判断是否含有数据,返回bool类型
reader 一直占用SqlConnectiion对象,
如果重新执行 cmd.CommandText得等到reader释放刚才connection对象
DateTime.now.substract()
sql防止注入:
cmd.Parameters.Add(“@username”,txtUsername.text)
c#配置问题以及简单防止sql注入,连接池问题,sqldatareader对象对于connection对象的释放
标签:c#
热心网友
时间:2022-04-09 23:06
这些都是ADO.NET里的基本对象。
command:用于执行各种命令,你可以给这个command赋上数据库连接和SQL
command.executereader ,返回一个可读的向前的数据集,读取大量数据时数据较快,取数据过程中缺点是数据库连接必须一直连着。
executenonquery:执行一个无返回的指令,比如insert、update、delete。这些操作其实也有返回,返回的是影响的行数,只是这个返回对我们来说没多大用处,所以一般认为这些操作是无返回的,和select相对。
datareader:command.executereader返回的对象
dataadapter:数据适配器,用于填充dataset、dataTable。即把数据库的数据查出来,存放到内存里。
给你个简单例子看看:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace Proct.DA
{
public class DBAccess
{
/// <summary>
/// 数据库联接字符串
/// </summary>
private static readonly string ConnectString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static DataTable ExecuteDataTable(string sql)
{
DataTable dt = new DataTable();
dt.TableName;
SqlDataAdapter sda = new SqlDataAdapter(sql,ConnectString);
sda.Fill(dt);
if (dt.Rows.Count > 0)
{
return dt;
}
else
{
return null;
}
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static object ExecuteScalar(string sql)
{
SqlCommand cmd = null;
SqlConnection con = null;
try
{
cmd = new SqlCommand();
con = new SqlConnection(ConnectString);
cmd.Connection = con;
con.Open();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "sql";
return cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw (new Exception("access database exception"));
}
finally
{
if (con != null)
{
con.Close();
}
}
}
/// <summary>
///
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int ExecuteNonQuery(string sql)
{
SqlCommand cmd = null;
SqlConnection con = null;
try
{
cmd = new SqlCommand();
con = new SqlConnection(ConnectString);
cmd.Connection = con;
con.Open();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "sql";
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw (new Exception("access database exception"));
}
finally
{
if (con != null)
{
con.Close();
}
}
}
}
}
热心网友
时间:2022-04-10 00:24
command 就是设置合适于数据源的操作命令,执行检索,编辑,或者是参数等数据操作,这些命令可以是SQL语句或者是数据库存储过程,比如:SqlCommand cmd=new SqlCommand (sql,conn)//sql表示语句 conn表示连接数据库;command.executereader是从数据源项应用程序执行读取,比如:前面的Command执行后Datareader dr= cmd.Excutereader() ,Datareader 就是执行高速只读,只向前的数据访问;Executenonquery返回执行后的影响行数 一般用int i =cmd.Executenonquery() ;DataAdapter就是数据适配器 执行Command 后从数据源中检索出的数据送往数据集,或者是将数据集编辑后送回数据源, 一般用Fill()方法调用。
热心网友
时间:2022-04-10 01:58
datareader 每次只能读取一条数据
dataadapter 不*读取的条数