static void Main(string[] args)
{
SqlConnection connection = new SqlConnection("Server =NIO\\SQLExpress" +
";Integrated Security = True" +
";Database =Northwind");
SqlDataAdapter dataApapter = new SqlDataAdapter("SELECT CustomerID,CompanyName FROM Customers" , connection);
Console.WriteLine(connection.State);//测试。
SqlCommandBuilder builder = new SqlCommandBuilder(dataApapter);
Console.WriteLine(connection.State);//测试。
DataSet dataSet = new DataSet();
Console.WriteLine(connection.State);//测试。
dataApapter.Fill(dataSet , "Customers");
Console.WriteLine(connection.State);//测试。
Console.WriteLine("名字改变前:{0}" , dataSet.Tables[0].Rows[9]["CompanyName"]);
Console.WriteLine(connection.State);//测试。
dataSet.Tables[0].Rows[9]["CompanyName"] = "newCompanyName";
Console.WriteLine(connection.State);//测试。
dataApapter.Update(dataSet , "Customers");
Console.WriteLine(connection.State);//测试。
Console.WriteLine("名字改变后:{0}" , dataSet.Tables[0].Rows[9]["CompanyName"]);
Console.WriteLine(connection.State);//测试。
connection.Close();
Console.WriteLine(connection.State);//测试。
Console.ReadKey();
}结果:Closed
Closed
Closed
Closed
名字改变前:Die Wandernde Kuh
Closed
Closed
Closed
名字改变后:newCompanyName
Closed
Closed迷茫,谁可以解释一下吗?为什么不需要Open?什么时候需要,什么时候需要?建议需要还是建议不需要?
猜测:某一个语句自动打开,然后又自动关闭?详细解释下,我想不难吧?
{
SqlConnection connection = new SqlConnection("Server =NIO\\SQLExpress" +
";Integrated Security = True" +
";Database =Northwind");
SqlDataAdapter dataApapter = new SqlDataAdapter("SELECT CustomerID,CompanyName FROM Customers" , connection);
Console.WriteLine(connection.State);//测试。
SqlCommandBuilder builder = new SqlCommandBuilder(dataApapter);
Console.WriteLine(connection.State);//测试。
DataSet dataSet = new DataSet();
Console.WriteLine(connection.State);//测试。
dataApapter.Fill(dataSet , "Customers");
Console.WriteLine(connection.State);//测试。
Console.WriteLine("名字改变前:{0}" , dataSet.Tables[0].Rows[9]["CompanyName"]);
Console.WriteLine(connection.State);//测试。
dataSet.Tables[0].Rows[9]["CompanyName"] = "newCompanyName";
Console.WriteLine(connection.State);//测试。
dataApapter.Update(dataSet , "Customers");
Console.WriteLine(connection.State);//测试。
Console.WriteLine("名字改变后:{0}" , dataSet.Tables[0].Rows[9]["CompanyName"]);
Console.WriteLine(connection.State);//测试。
connection.Close();
Console.WriteLine(connection.State);//测试。
Console.ReadKey();
}结果:Closed
Closed
Closed
Closed
名字改变前:Die Wandernde Kuh
Closed
Closed
Closed
名字改变后:newCompanyName
Closed
Closed迷茫,谁可以解释一下吗?为什么不需要Open?什么时候需要,什么时候需要?建议需要还是建议不需要?
猜测:某一个语句自动打开,然后又自动关闭?详细解释下,我想不难吧?
解决方案 »
- vs怎么实现用GDI绘的字,在固定一个范围内呢?
- datagrid动态列名显示问题
- 循环表格得到一个值如:“1,2,3,14,15”怎么把它赋给数组,得到”1 “ “ 2”“3”“14”“15”单个值
- 在textBox显示数据库里读取的数据
- 求救:我原来有VS2003做的项目,可以编绎,没有错误,可换用VS2005打开编绎,就出现这样的错误,而且编绎不成功呀!这是乍的啦?
- winform,如何设置datagrid的标题行文字都中对齐??谢谢
- 异步socket通信问题
- 在xml文档中查找某个节点
- winform开发---怎么在控制台输出语句?..详情请点击链接....
- 创建socket出问题了,请教各位??
- 项目“C:\Project1.csproj”所需的应用程序未安装。
- C# 指定随机数种子
";Integrated Security = True" +
";Database =Northwind");
还没打开呢/ SqlDataAdapter dataApapter = new SqlDataAdapter("SELECT CustomerID,CompanyName FROM Customers" , connection);
打开了又关闭了后面当然都是 Closed 没看出来什么不对的啊
对数据库insert、update、delete时,需要Open数据库连接对象,执行完再Close
对数据库select查询时,不需要Open,只要设好适配器SqlDataAdapter,再填充数据集DataSet
那么fill完sqlconnection的状态任然时open,如果fill时没有open ,那么open,fill完后立刻close
这是我的理解
理解了。那么按照7楼朋友的理解是正确的?当只有SELECT时,便不需要OPEN?
1、
dataApapter.Fill(dataSet , "Customers");
2、
dataApapter.Update(dataSet , "Customers");
SqlCommend对象的方法操作数据库需手动开关数据库连接;