打印

[.net] 数据库连接有问题?[结贴]

类文件连数据库
复制内容到剪贴板
代码:
public class ConnDB
{
    string SqlStr = ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString.ToString();
    SqlConnection ConnStr;
    public ConnDB()
    {
        ConnStr = new SqlConnection(SqlStr);
    }
}
接口
复制内容到剪贴板
代码:
public interface ILeaveword
{
    SqlDataReader GetLeavewords();
         ........
}
或取数据
复制内容到剪贴板
代码:
public SqlDataReader GetLeavewords()
    {
        ///创建链接
        ///SqlConnection myConnection = new SqlConnection(
            ///ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString);
        ///用注示的没有问题
        ConnDB myConnection = new ConnDB();
        SqlCommand myCommand = new SqlCommand(GETLEAVEWORDS, myConnection);
.........
错误信息
编译器错误信息: CS1502: 与“System.Data.SqlClient.SqlCommand.SqlCommand(string, System.Data.SqlClient.SqlConnection)”最匹配的重载方法具有一些无效参数

源错误:



行 41:         ConnDB myConnection = new ConnDB();
行 42:
行 43:         SqlCommand myCommand = new SqlCommand(GETLEAVEWORDS, myConnection);
行 44:
行 45:               ///定义DataReader

问题出在哪里

[ 本帖最后由 moonpotato 于 2008-5-21 12:20 编辑 ]
受人以渔
SqlCommand myCommand = new SqlCommand(GETLEAVEWORDS, myConnection);
GETLEAVEWORDS这个表示一个sql语句吗?
不会.net,不过看了你这个语句觉得跟java很相似。
根据经验分析下
System.Data.SqlClient.SqlCommand.SqlCommand(string, System.Data.SqlClient.SqlConnection)
这个方法传递的参数中,第二个应该是一个SqlConnection对象。
而你现在传入的是自己写的DBConn对象,不应该这样用。要用到你自己写的DBConn类中的SqlConnection对象。

改成如下如何?
        ConnDB myConnection = new ConnDB();
        SqlCommand myCommand = new SqlCommand(GETLEAVEWORDS, myConnection.ConnStr);
ForgotteN
myConnection没有值吧
是不是myConnection.ConnStr

[ 本帖最后由 lovme 于 2008-5-20 23:17 编辑 ]
MT倒了...

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!
谢谢关注.
改过后出现这样的错误
ConnDB.ConnStr”不可访问,因为它受保护级别限制
受人以渔

TOP

System.Data.SqlClient.SqlCommand.SqlCommand(string, System.Data.SqlClient.SqlConnection)”
你的第一个参数用的是sqldatareader 那个方法返回的又不是string值,当然报你参数不配

ConnDb.ConnStr 你没有设置public属性,当然是受保护级限制...

TOP

复制内容到剪贴板
代码:
public class ConnDB
{
    string SqlStr = ConfigurationManager.ConnectionStrings["SQLCONNECTIONSTRING"].ConnectionString.ToString();
    public SqlConnection ConnStr;
    public ConnDB()
    {
        ConnStr = new SqlConnection(SqlStr);
    }
}
受人以渔

TOP

另外如果不是static的变量类型
是不是要用get{} set{} 来实现变量设置?

TOP

回复 ascii 在 8# 的帖子

谢谢回复。感觉我刚刚入门。
受人以渔

TOP