ADO.NET中关于using的不解之谜,请高手指点
using 一堆。。。;
using System.Data.SqlClient;
using System.Data;
public partial class ADO : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string strcon; //声明连接字串
strcon = "一堆。。。;"; //编写连接字串
SqlConnection con = new SqlConnection(strcon); //新建SQL连接
try
{
con.Open(); //打开SQL连接
Label1.Text = "连接数据库成功"; //提示成功信息
SqlDataAdapter da = new SqlDataAdapter("select * from tbuser", con); //创建适配器
DataSet ds = new DataSet(); //创建数据集
da.Fill(ds,"userTB"); //Fill方法填充
//ds.Tables["userTB"].Rows[0]["tbuser_txt_cname"].ToString(); //获取数据集
for (int i = 0; i < ds.Tables["userTB"].Rows.Count; i++) //遍历DataSet数据集
{
Response.Write(ds.Tables["userTB"].Rows[i]["tbuser_txt_cname"].ToString() + "<br/>");
}
}
catch
{
Label1.Text = "没有连接到数据库!";
}
}
问题是,当我删掉 using System.Data.SqlClient; 这句就出现问题:
错误1找不到类型或命名空间名称“SqlConnection”(是否缺少 using 指令或程序集引用?)
我想,using System.Data; 不是就包括了 using System.Data.SqlClient; 吗?应该只需要using System.Data;就可以了,怎么还要using System.Data.SqlClient; 呢?
请高手指点了,多谢多谢!
分不够,请谅解。。。 ADO using
[解决办法]
虽然不太懂Data跟SqlClient的关系,,但是 我知道 不是你想的那样
如果是你那样 我直接
using system;
不就完了么??
[解决办法]
using 什么就只会指定到该命名空间下一级的dll,不会说只要以这个命名空间开头的dll都添加到引用了
[解决办法]
你把这个空间地址看成文件夹地址就好了,
引用的时候就是指引用这个文件夹下的文件,而不是这个文件夹下的所有文件还包含子文件夹
[解决办法]
System.Data包含的是一些数据库操作所需要用到的普通数据,如数据表,数据行等,这个对所有数据库都是必须的
System.Data.SqlClient;包含有关专门操作SqlServer数据库的类,如SqlConnection,SqlCommand,SqlDateAdapter等,而Oledb中则包含的是操作所有数据库的类
[解决办法]
System.Data与System.Data.SqlClient是两个不同的dll
[解决办法]
四楼这个比喻不错啊。
System.Data和System.Data.SqlClient的确是两回事。
以下来自MSDN,基本是原话。
SqlConnection类
表示SQL Server数据库的一个打开的连接。无法继承此类。
命名空间:System.Data.SqlClient
程序集:System.Data.SqlClient(在 System.Data.SqlClient.dll 中)
System.Data(在 System.Data.dll 中)
[解决办法]
楼主需要看一下命名空间和程序集相关的资料