【问题标题】:ServerVersion throws 'System.InvalidOperationException' when trying to connect to local database in SQL Server尝试连接到 SQL Server 中的本地数据库时,ServerVersion 抛出“System.InvalidOperationException”
【发布时间】:2014-09-22 17:58:44
【问题描述】:

我正在尝试练习 ADO.net 框架,而且我还处于起步阶段。我正在尝试使用以下字符串连接到我的本地数据库:

connectionString="Server=localhost;Database=AdventureWorks2012; Integrated Security=True;"

但是当我尝试使用我创建的按钮来访问数据库时,我得到this error

有趣的是,在我使用按钮之前,一切都很好,正如我通过调试和破解后看到的那样

conn.Open(); 

(ServerVersion 还没有抛出异常,而是返回版本“11.00.3153”)

除了连接字符串,我非常确定代码是正确的,所以我认为问题与配置有关。有什么想法吗?

代码中断时的事件是:

private void buttonGetEmployee_Click(object sender, EventArgs e)
    {
        try
        {
            DataLayer.Employees es = new DataLayer.Employees();
            DataLayer.Employee employee = es.GetEmployee(int.Parse(textBoxEID.Text));

            textBoxFName.Text = employee.FirstName;
            textBoxLName.Text = employee.LastName;
            textBoxDName.Text = employee.DepartmentName;

        }
        catch { }

【问题讨论】:

  • 发布相关代码in your question以及错误消息。外部链接中断,SO 的重点是创建一个对您和未来用户都有用的知识库,无论您发布的链接是否中断。
  • @eddie_cat ,好的,完成了。
  • 这不是一个糟糕的错误——它只是意味着只要你没有连接到服务器,ServerVersion 就无法确定 ....

标签: c# sql-server ado.net database-connection adventureworks


【解决方案1】:

我刚刚发现了问题。在

public class Employees{...}

相关命令

cmd.CommandText = @"MyQuery";

定义错误,不包含预期的属性,因此它为问题中显示的事件返回了错误的对象,

buttonGetEmployee_Click(object sender, EventArgs e)

这导致您看到的错误,可能看起来与 ServerVersion 相关,但实际上表明在调用事件以使用对象时发生了错误

Employees es

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多