SqlDb
using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
public class SqlDB
{
public SqlConnection conn = null;
public SqlCommand cmd = null;
public SqlDataAdapter dA = null;
public SqlCommandBuilder cmdB = null;
private SqlDataReader sdr = null;
private string constr= ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
public SqlDB()
{
//conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\NYFood1.mdf;Integrated Security=True;User Instance=True");
//conn = new SqlConnection(@"Data Source=FISH-PC\SQLSERVER;Initial Catalog=NYFood1;User ID=sa;Password=sa;Trusted_Connection=False;");
//conn = new SqlConnection(@"Data Source=DUODUO\SQLSERVER;Initial Catalog=NYFood1;Integrated Security=True");
conn = new SqlConnection(constr);
cmd = new SqlCommand();
cmd.Connection = conn;
dA = new SqlDataAdapter("", conn);
}
public SqlDB(string conStr)
{
conn = new SqlConnection(conStr);
cmd = new SqlCommand();
cmd.Connection = conn;
dA = new SqlDataAdapter("", conn);
}
/// <summary>
/// 执行各种SQL语句 删除、插入
/// </summary>
/// <param name="sqlStr">true表示执行成功,false表示执行失败</param>
/// <returns></returns>
public bool ExecSql(string sqlStr)
{
try
{
conn.Open();
cmd = new SqlCommand(sqlStr, conn);
cmd.ExecuteNonQuery();
conn.Close();
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return false;
}
}
/// <summary>
/// 根据查询语句,将查询结果以DataTable类型返回,如果执行的是各种更新语句,则返回值无意义。
/// </summary>
/// <param name="selectSql"></param>
/// <returns>查询结果</returns>
public DataTable FillDt(string selectSql)
{
DataTable dt = new DataTable();
dA.SelectCommand.CommandText = selectSql;
dA.Fill(dt);
return dt;
}
/// <summary>
/// 根据查询语句,将查询结果以DataSet类型返回,如果执行的是各种更新语句,则返回值无意义。
/// </summary>
/// <param name="selectSql"></param>
/// <returns>查询结果</returns>
public FillDs(string selectSql)
{
DataSet ds = new DataSet();
dA.SelectCommand.CommandText = selectSql;
dA.Fill(ds);
return ds;
}
//DataSet是数据集,DataTable是数据表,DataSet存储多个DataTable。DataSet和DataTable像是专门存储数据的一个容器,在你查询数据库得到一些结果时可以存在里面。DataSet功能强大有浏览、排序、搜索、过滤、处理分级数据、缓存更改等功能,还可以与XML数据互换。DataSet中可包括多个DataTable,可将多个查询结构存到一个DataSet中,方便操作 ADO.NET开发人员为方便数据处理开发出来的,是数据的集合,为解决DataReader的缺陷设计的,DataReader数据处理速度快,但它是只读的,一旦移到下一行就不能查看上一行的数据,DataSet则可以自由移动指针。DataSet的数据是与数据库断开的。DataSet还可用于多层应用程序中,如果应用程序运行在中间层的业务对象中来访问数据库,则业务对象需将脱机数据结构传递给客户应用程序。
/// <summary>
/// 获得DataReader对象,使用完毕后必须关闭DataReader,而且要关闭数据连接
/// 当sdr关闭的时候 连接也一起关闭
///
/// </summary>
/// <param name="strSql">sql语句</param>
/// <returns></returns>
public SqlDataReader GetDataReader(string strSql)
{
conn.Open();
cmd = new SqlCommand(strSql, conn);
sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return sdr;
}
/// <summary>
/// 执行更新语句,将dt中的数据更新到数据库中,其更新语句由 Select语句通过SqlCommandBuilder对象自动生成。
/// </summary>
/// <param name="selectSql"></param>
/// <param name="dt"></param>
/// <returns></returns>
public bool UpdateDt(string selectSql, DataTable dt)
{
bool r = false;
dA.SelectCommand.CommandText = selectSql;
cmdB = new SqlCommandBuilder(dA);
dA.Update(dt);
r = true;
return r;
}
}