您的位置:首页 > 数据库

.NET基础 (20).NET中的数据库开发

2015-09-13 16:49 429 查看
ADO NET和数据库程序基础
1 什么是关系型数据库
2 如何通过SQL语句来实现行列转换
3 ADO NET支持哪几种数据源

ADO NET和数据库的连接
1 请简要叙述数据库连接池的机制
2 如何提高连接池内连接的重用率
3 一个连接字符串可以包含哪写属性
4 CommandBehavior.CloseConnection有何作用

使用ADO NET读写数据库
1 ADO NET支持哪两种方式来访问关系数据库
2 什么是强类型的DataSet
3 请解释SqlDataAdapter的基本工作机制
4 如何自动生成SqlDataAdapter的更新命令

ADO NET和数据库程序基础
1 什么是关系型数据库

关系型数据库是采用了关系模型来组织数据的数据库。关系模型就是指二维表模型。相对于其他模型来说,关系型数据库具有理解更容易、 使用更方便、维护更简单等优点。

2 如何通过SQL语句来实现行列转换

/// <summary>
/// 数据访问层类型
/// </summary>
public class DataHelper
{
static readonly String conn_String = "Server=localhost;Integrated Security=true;database=NetTest";
/// <summary>
/// 使用给定的sql来访问数据库
/// 返回DataSet对象
/// </summary>
/// <param name="sql">SQL命令</param>
/// <returns>DataSet对象</returns>
public static DataSet GetDataSet(String sql)
{
SqlConnection con = new SqlConnection(conn_String);
DataSet ds = new DataSet();
try
{
//打开连接,执行查询
//并且返回DataSet
con.Open();
using (SqlDataAdapter sd = new SqlDataAdapter(sql, con))
{
//这里数据将被批量读入
sd.Fill(ds);
}
return ds;
}
//连接数据库随时可能发生异常
catch (Exception ex)
{
if (con.State != ConnectionState.Closed)
con.Close();
return ds;
}
}
}

/// <summary>
/// 使用数据库访问层
/// 脱机式读取数据
/// </summary>
class User
{
//SQL命令
static readonly String sql = "select * from dbo.DepCount";
static void Main(string[] args)
{
DataSet ds = DataHelper.GetDataSet(sql);
//打印结果,这里假设只对DataSet中的第一个表感兴趣
DataTable dt = ds.Tables[0];
//打印列名
foreach (DataColumn column in dt.Columns)
Console.Write("{0}  ", column.ColumnName);
Console.Write("\r\n");
//打印表
foreach (DataRow row in dt.Rows)
{
for (int i = 0; i < dt.Columns.Count; i++)
{
Console.Write("{0}  ", row[i].ToString());
}
Console.Write("\r\n");
}
Console.Read();
}
}


View Code

2 什么是强类型的DataSet

指那些固定结构的继承自DataSet的类型,相比于DataSet而言,强类型的DataSet具有访问方便、约束性强的特点,有利于数据访问层的隔离,也有利于把错误提前到编译阶段发现。

3 请解释SqlDataAdapter的基本工作机制

SqlDataAdapter使用内部4个SQLCommand类型的成员进行检索和更新操作,分别是SelectCommand、InsertCommand、UpdateCommand和DeleteCommand。SelectCommand成员可以在SqlDataAdapter构造时被构造,程序员可以手动地设置这4个成员来控制SqlDataAdapter的行为。



4 如何自动生成SqlDataAdapter的更新命令

使用SQLCommandBuilder类型和自动生成SQLDataAdapter中的更新命令。

建议,尽量手动地构造更新Command对象,而避免使用XXXCommandBuilder类型。实际工作中很少用DataAdapter来执行增、删、改的操作,要执行这些操作直接拼SQL或者调用存储过程,用SqlCommand.ExecuteNonQuery执行就行了。

转载请注明出处:

作者:JesseLZJ
出处:http://jesselzj.cnblogs.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: