你在VS中看的数据库是项目中的数据库,你编译时用到的的数据库是debug下的数据库文件,查看你项目中数据库的“复制到输出目录”属性,肯定是始终复制,意思就是每次拟推迟编译的时候会把你项目中的数据库覆盖你debug下的数据库,所以你每次编译后虽然在debug下的数据库成功更改数据了,但是之后就会被外面的数据库覆盖。
解决办法:
在程序的main函数中添加如下代码:
string dataDir = AppDomainCurrentDomainBaseDirectory;
if(dataDirEndsWith(@"\bin\Release\")||dataDirEndsWith(@"\bin\Debug\"))
{
dataDir = SystemIODirectoryGetParent(dataDir)ParentParentFullName;
AppDomainCurrentDomainSetData("DataDirectory", dataDir);
}
放在主窗口代码运行之前,就一劳永逸的解决了这个问题啊
LINQ,语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式 *** 作内存数据。
从技术角度而言,LINQ定义了大约40个查询 *** 作符,如select、from、in、where以及order by(C#中)。使用这些 *** 作符可以编写查询语句。不过,这些查询还可以基于很多类型的数据,每个数据类型都需要一个单独的LINQ类型。
经过了最近 20 年,面向对象编程技术( object-oriented (OO) programming technologies )在工业领域的应用已经进入了一个稳定的发展阶段。程序员现在都已经认同像 类(classes)、对象(objects)、方法(methods)这样的语言特性。考察现在和下一代的技术,一个新的编程技术的重大挑战开始呈现出来,即面向对象技术诞生以来并没有解决降低访问和整合信息数据( accessing and integrating information )的复杂度的问题。其中两个最主要访问的数据源与数据库(database)和XML(标准通用标记语言下的一个应用)相关。
LINQ 提供了一条更常规的途径即给Net Framework添加一些可以应用于所有信息源( all sources of information )的具有多种用途( general-purpose )的语法查询特性( query facilities ),这是比向开发语言和运行时( runtime )添加一些关系数据( relational )特性或者类似 XML 特性( XML-specific )更好的方式。这些语法特性就叫做 NET Language Integrated Query (LINQ) 。
在新的 Net Framework 平台上 Microsoft发布了LINQ(C# VB Net ) 集成语言查询(Language Integrated Query) 也就是通过编程语言来查询数据
数据库 (LINQ to SQL)
DataSet 数据集(LINQ to Dataset)
XML文档 (LINQ to XML)
实体对象 (LINK to Entities)
本文将演示如何在ASP NET 平台上 使用LINQ to SQL构建多层的Web应用程序 在当前的编程领域中 创建N Tier应用程序成为一般的要求 且 NET Framework 提供了灵活的支持 一般而言 N Tier应用程序有如下几个层 表示层 业务逻辑层 数据访问层 数据库层 每一层均完成特定的任务 本篇文章中介绍的架构和经典的N Tier相似 不过数据库层替换新的DataLinq 层 使用LINQ to SQL 完成数据 *** 作
图 基于LINQ to SQL的N Tier架构
架构思考
如果你有大型ASP NET项目的经历 你可能会注意到更多的时间花在写组件代码 而不是Web页面代码 有时 组件的设计和管理成为一个费时的过程 你可能正遇到架构方面的问题 寻找最好的方式来设计Web应用程序
我写这篇文章的想法是介绍一个好的设计模式 并不是得到一个结论或者声明这是一个最好的N Tier应用程序的设计模式 因为对于架构设计 每一个开发人员总是有自己的观点 所以任何合适的架构阐述都是有争议的 然而 如图 所示 分离不同的代码到不同的层总是一个好的实践 按这样组织代码 可以更方便地维护和扩展应用程序
在图 中 你可以看到业务组件分割到不同的层 组织代码最好的方法是为每一个业务组件创建不同的类库(Class Library) Visual Studio允许在同一个Solution中创建多个项目 因此 我们可以在同一个Solution中加入ASP NET 应用程序和类库Class Library项目 当你在编译Solution时 每一个项目都会生成在bin目录下生成一个assembly程序集文件 方法 我们可以手动复制 DLL文件到应用程序的bin目录 方法 增加项目引用 当你编译Solution时 第二种方法可以自动更新应用程序bin目录的程序集文件 通过这种方式组织代码 可以更容易修改/更新项目的特定代码 也容易从不同的Server上迁移代码 我不想深入探讨架构 这里我通过截屏来解释如何实现
假定你已经具备经典 层架构应用程序的设计经验 我告诉你如何建立层与层之间的引用关系 接着你可以自己建立项目引用 图 上的箭头符号说明了不同层之间的交互 说明如下
( ) 数据访问层引用Data Linq 层( 开源小组注 原文说还需要引用业务外观(Business Facade)层 原文有误)
( ) 业务外观(Business Facade)层引用Data Linq 层和数据访问层 因为业务外观层使用Data Linq层的业务实体来创建表实体(后面进行详细讨论) 同时调用数据访问层的方法
lishixinzhi/Article/program/net/201311/12345
先定义匿名类型,然后使用查询 *** 作符迭代结果,最后使用Count扩展方法统计就是了。这个也不属于MVC,也不属于LINQ TO SQL,而是属于LINQ。你的基本概念没弄清楚,就把自己套入一堆名词中去了。。。
你用的是LinqToSql吧?在db = new NewDBDataContext(“指定的链接字符串”);这是使用有一个参数的构造函数,或者看无参的构造函数:
public NewDBDataContext() : base(global::NewGasgooAutoRepostPropertiesSettingsDefaultDBConnectionString, mappingSource)
{
OnCreated();
}
看这个NewGasgooAutoRepostPropertiesSettingsDefaultDBConnectionString的定义:
public string DBConnectionString {
get {
return ((string)(this["DBConnectionString8"]));
}
}
这个值就是Setting里的配置链接。
你可以将这个Return 修改为自己的配置,比如ConfigurationManagerAppSettings["DBString"],
也可以直接修改Setting配置。不过我比较推荐db = new NewDBDataContext(“指定的链接字符串”)。因为如果重新托表, return ((string)(this["DBConnectionString8"]));就会自动变的。
LINQ,语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式 *** 作内存数据。
请注意: linq 是用于查询 内存数据的, 不是用于查询数据库的。
只是 “以查询数据库相同的方式”
有个 linq to sql, 这个是查询 SQL Server 的,也就是查询数据库的时候, 写的不是 sql 语句, 而是 linq 的语句。
因为你在select里采用了字符串拼接,拼接默认是调用ToString方法的,Null是没有ToString的所以返回就空掉了。
你可以在select里判断下是不是null
public string isNull(string s)
{ return sIsNullOrEmpty(s) "" : s;}select isNull(dmax) + 这样的方式
以上就是关于C# VS2010中linq可以读入数据库,却无法写入数据库全部的内容,包括:C# VS2010中linq可以读入数据库,却无法写入数据库、什么是linq技术、用LINQtoSQL创建Web应用系统(一)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)