none
用dbml文件枚举一个数据库文件时发生error26错误

    问题

  • using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    
    namespace P706_connect_LINQ_to_SQL_databases
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
                string connectionString = "Data Source=|DataDirectory|\\ContactDB.mdf";
                ContactDB context = new ContactDB(connectionString);
    
                var peopleData =
                    from person in context.People
                    select new { person.Name, person.Company };
    
                foreach (var people in peopleData)
                    Console.Write(people.Name);
            }
        }
    }

    编译时没有发生错误,运行到foreach语句即开始利用LINQ读取数据库文件ContactDB.mdf时发生如下错误

    我的visual studio是2015 express 为了使用Sqlmetal生成dbml文件又安装了Sql server 2014 express

    如果这个方法在这个版本的vs不可行,那利用linq来连接sql的正确方法是什么呢?

    2016年9月6日 10:31

答案

  • string connectionString = "Data Source=|DataDirectory|\\ContactDB.mdf";
               
    ContactDB context = new ContactDB(connectionString);

    这样写连接字符串,是ASP.NET  Web程序的习惯,要保证EXE目录下有一个DataDirectory目录,并且要指定是用SQL Express引擎连接, Winform程序应该是

    connectionString =“Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;Data Source=|DataDirectory|\\ContactDB.mdf来自 http://www.connectionstrings.com/sql-server/



    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 Mirage_j 2016年9月6日 12:22
    2016年9月6日 11:50

全部回复

  • 我改用Linq To Sql类来实现上面我想实现的功能了,但我依然疑惑为何我上面的做法会出现错误
    2016年9月6日 11:18
  • string connectionString = "Data Source=|DataDirectory|\\ContactDB.mdf";
               
    ContactDB context = new ContactDB(connectionString);

    这样写连接字符串,是ASP.NET  Web程序的习惯,要保证EXE目录下有一个DataDirectory目录,并且要指定是用SQL Express引擎连接, Winform程序应该是

    connectionString =“Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;Data Source=|DataDirectory|\\ContactDB.mdf来自 http://www.connectionstrings.com/sql-server/



    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    • 已标记为答案 Mirage_j 2016年9月6日 12:22
    2016年9月6日 11:50
  • 谢谢,没想到还要指定server等等
    2016年9月6日 12:23