ADO.NET的DataSet问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 03:06:22
namespace DataGridViewExample
{
public partial class frmDGV : Form
{
public frmDGV()
{
InitializeComponent();
}

private void frmDGV_Load(object sender, EventArgs e)
{
//Persist Security Info属性的意思是表示是否保存安全信息;
string connStr = "server=JUJUMAO;"+ "persist security info=False;" + "database=DataStudy;" + "integrated security=SSPI;";
string sql = "select * from Students";
SqlConnection conn = new SqlConnection(connStr);

conn.Open(); //这句代码为什么可以不要?

SqlDataAdapter adapter = new SqlDataAdapter(sql,conn);
DataSet ds = new DataSet(); //填充数据集
adapter.Fill(ds);

//对应修改的列标题
ds.Tables[0].Columns[0].ColumnName = "学号";

SqlDataAdapter会自动处理数据库的连接,所以可以不要
不过最好手动加上conn.Close()
因为你不知道SqlDataAdapter什么时候关闭conn

SqlDataAdapter 执行数据操作不需要打开连接

conn.Open()可以不加,但是conn.Close()一定得加。

给LZ的代码改写一下~~~

private void frmDGV_Load(object sender, EventArgs e)
{
//Persist Security Info属性的意思是表示是否保存安全信息;
string connStr = "server=JUJUMAO;"+ "persist security info=False;" + "database=DataStudy;" + "integrated security=SSPI;";
string sql = "select * from Students";
try
{
SqlConnection conn = new SqlConnection(connStr);

conn.Open(); //这句代码为什么可以不要?

SqlDataAdapter adapter = new SqlDataAdapter(sql,conn);
DataSet ds = new DataSet(); //填充数据集
adapter.Fill(ds);

//对应修改的列标题
ds.Tables[0].Columns[0].ColumnName = "学号";
ds.Tables[0].Columns[1].ColumnName = "姓名";
ds.Tables[0].Columns[2].ColumnName = "性别";
ds.Table