我的项目中有一个DAL类文件,我的老师发给我并向我解释但我并不理解。它有很多功能,我只了解其中的几个,比如连接到数据库或创建一个命令对象,但有2个我不明白:
public static DataTable GetTable(string str)
{
OleDbConnection con = DAL.GetConnection();
OleDbCommand cmd = DAL.GetCommand(con, str);
DataTable dt = new DataTable();
OleDbDataAdapter adp = new OleDbDataAdapter();
adp.SelectCommand = cmd;
adp.Fill(dt);
return dt;
}
public static int ExecuteNonQuery(string str)
{
int num = -1;
OleDbConnection con = DAL.GetConnection();
con.Open();
if (con.State == ConnectionState.Open)
{
OleDbCommand cmd = DAL.GetCommand(con, str);
num = cmd.ExecuteNonQuery();
con.Close();
}
return num;
}
答案 0 :(得分:3)
public static DataTable GetTable(string str)
{
OleDbConnection con = DAL.GetConnection();
OleDbCommand cmd = DAL.GetCommand(con, str);
DataTable dt = new DataTable();
OleDbDataAdapter adp = new OleDbDataAdapter();
adp.SelectCommand = cmd;
adp.Fill(dt);
return dt;
}
此方法填充数据表,即从数据库中提取的数据被填充(或添加)到临时虚拟表(存储在内存中)中,以便您可以使用该数据在UI上显示。从数据库中获取后,您还可以在UI上显示它之前对其执行某些操作。
public static int ExecuteNonQuery(string str)
{
int num = -1;
OleDbConnection con = DAL.GetConnection();
con.Open();
if (con.State == ConnectionState.Open)
{
OleDbCommand cmd = DAL.GetCommand(con, str);
num = cmd.ExecuteNonQuery();
con.Close();
}
return num;
}
此方法执行非查询,即它对数据库执行操作。此操作本身可以是插入,更新或删除操作。这些操作是根据SQL语言语法指定的。
这只是一个简单的解释。在Google上搜索以获得进一步的理解。
您可以查看此链接:http://msdn.microsoft.com/en-us/library/aa581776.aspx
它将帮助您理解数据访问层的基础知识。
希望这有帮助!!!
答案 1 :(得分:0)
当您使用连接,命令或需要在其范围末尾处理的任何其他对象时,学习使用 using 语句也是很好的。
对使用语句有几点评论,例如:
参考:MSDN
因此您的代码也可以像这样改进:
public static DataTable GetTable(string str)
{
using (var con = DAL.GetConnection())
{
using(var cmd = DAL.GetCommand(con, str))
{
return SetDataTable(cmd);
}
}
}
public static int ExecuteNonQuery(string str)
{
using (var con = DAL.GetConnection())
{
using (var cmd = DAL.GetCommand(con, str))
{
return cmd.ExecuteNonQuery();
}
}
}
private static DataTable SetDataTable(OleDbCommand cmd)
{
DataTable dt = new DataTable();
OleDbDataAdapter adp = new OleDbDataAdapter();
adp.SelectCommand = cmd;
adp.Fill(dt);
return dt;
}