当前位置:首页 » 操作系统 » linq数据库

linq数据库

发布时间: 2022-11-20 14:33:03

1. 如何在网站开发中使用LINQ操作数据库

DBLinqTosqlDataContext Db = new DBLinqToSqlDataContext(); //实例化上下文
Error_Log LOG = new Error_Log();
Exception ee = new Exception();
LOG.Object = ee.Source;
LOG.TargetSite = ee.TargetSite.ToString();
LOG.MessAge = ee.Message;
LOG.Time = DateTime.Now;
Db.Error_Log.InsertOnSubmit(LOG); //插入
Db.SubmitChanges(); //提交 这里运行才能真正的插入数据库
Response.Redirect("GeneralError.aspx");

2. 如何使用LINQ链接数据库并操作数据库

之前在远标做过用java连接数据库主要有两种方式,一是用JDBC-ODBC桥来连接,二是用相关厂商提供的相应驱动程序来连接,首先谈谈第一种连接。

JDBC-ODBC桥接器是用JdbcOdbc.Class和一个用于访问ODBC驱动程序的本地库实现的。对于WINDOWS平台,该本地库是一个动态连接库DLL(JDBCODBC.DLL)。

由于JDBC在设计上与ODBC很接近。在内部,这个驱动程序把JDBC的方法映射到ODBC调用上,这样,JDBC就可以和任何可用的ODBC驱动程序进行交互了。这种桥接器的优点是,它使JDBC目前有能力访问几乎所有的数据库。通行方式如图所示:

应用程序---JDBC API---JDBC-ODBC---ODBC API---ODBC层---数据源

具体操作方法为:

首先打开控制面板的管理工具,打开数据源(ODBC),在用户DSN里面添加数据源(即你要连接的数据库的名字),在这里假定连接SQL SERVER 2000的GoodsSupply数据库。名称填写你要连接的数据库的名称(GoodsSupply),然后逐步设置,如果选用了使用SQL-SERVER密码认证的话,就要输入相应的用户名及密码连接到数据库。一路下一步设置完成。

在JAVA里面编写程序进行测试,在这里我的程序是让用户输入任意的表名与与列名,把该列的所有数据输出。源代码如下:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.sql.*;

public class ODBCBridge {

public static void main(String[] args) {
String url="jdbc:odbc:GoodsSupply";
Statement sm=null;
String command=null;
ResultSet rs=null;
String tableName=null;
String cName=null;
String result=null;
BufferedReader input=new BufferedReader(new InputStreamReader(System.in));
try {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动
}catch(ClassNotFoundException e){
System.out.println("Can not load Jdbc-Odbc Bridge Driver");
System.err.print("ClassNotFoundException:");
System.err.println(e.getMessage());
}
Connection con=DriverManager.getConnection(url,"USER","PASSWORD"); //使用SQL-SERVER2000认证
DatabaseMetaData dmd=con.getMetaData(); //DMD为连接的相应情况
System.out.println("连接的数据库:"+dmd.getURL());
System.out.println("驱动程序:"+dmd.getDriverName());
sm=con.createStatement();
System.out.println("输入表名");
tableName=input.readLine();
while(true) {
System.out.println("输入列名(为空时程序结束):");
cName=input.readLine();
if(cName.equalsIgnoreCase(""))
break;
command="select "+cName+" from "+tableName;
rs=sm.executeQuery(command); //执行查询
if(!rs.next())
System.out.println("表名或列名输入有误");
else {
System.out.println("查询结果为:");
do
{
result=rs.getString(cName);
//数据库语言设置为中文,不用转换编码
//result=new String(result.getBytes("ISO-8859-1"),"GB2312");
System.out.println(result);
}while(rs.next());
}
}
}catch(SQLException ex) {
System.out.println("SQLException:");
while(ex!=null) {
System.out.println("Message:"+ex.getMessage());
ex=ex.getNextException();
}
}catch(Exception e) {
System.out.println("IOException");
}
}
}

3. linq如何设置连接数据库的字符串

你用的是LinqToSql吧?在db = new NewDBDataContext(“指定的链接字符串”);这是使用有一个参数的构造函数,或者看无参的构造函数:
public NewDBDataContext() : base(global::NewGasgoo.AutoRepost.Properties.Settings.Default.DBConnectionString, mappingSource)
{
OnCreated();
}
看这个NewGasgoo.AutoRepost.Properties.Settings.Default.DBConnectionString的定义:
public string DBConnectionString {
get {
return ((string)(this["DBConnectionString8"]));
}
}
这个值就是Setting里的配置链接。
你可以将这个Return 修改为自己的配置,比如ConfigurationManager.AppSettings["DBString"],
也可以直接修改Setting配置。不过我比较推荐db = new NewDBDataContext(“指定的链接字符串”)。因为如果重新托表, return ((string)(this["DBConnectionString8"]));就会自动变的。

4. linq 是否的是默认有数据库连接池

没有,需要你手动设置。另外你应该说Linq to SQL ....
可以使用一组名称-值对以链接字符串的形式配置链接池。例如,可以配置池是否有效(默认是有效的),池的最大、最小容量,用于打
开链接的排队请求被阻断的时间。下面的示例字符串配置了池的最大和最小容量。
"Server=(local); Integrated Security=SSPI; Database=Northwind;
Max Pool Size=75; Min Pool Size=5"摘要
连接池允许应用程序从连接池中获得一个连接并使用这个连接,而不需要为每一个连接请求重新建立一个连接。一旦一个新的连接被创建
并且放置在连接池中,应用程序就可以重复使用这个连接而不必实施整个数据库连接创建过程。
当应用程序请求一个连接时,连接池为该应用程序分配一个连接而不是重新建立一个连接;当应用程序使用完连接后,该连接被归还给连接
池而不是直接释放。
确保你每一次的连接使用相同的连接字符串(和连接池相同);只有连接字符串相同时连接池才会工作。如果连接字符串不相同,应用程序
就不会使用连接池而是创建一个新的连接。优点
使用连接池的最主要的优点是性能。创建一个新的数据库连接所耗费的时间主要取决于网络的速度以及应用程序和数据库服务器的
(网络)距离,而且这个过程通常是一个很耗时的过程。而采用数据库连接池后,数据库连接请求可以直接通过连接池满足而不需要为该请
求重新连接、认证到数据库服务器,这样就节省了时间。缺点
数据库连接池中可能存在着多个没有被使用的连接一直连接着数据库(这意味着资源的浪费)。技巧和提示
1. 当你需要数据库连接时才去创建连接池,而不是提前建立。一旦你使用完连接立即关闭它,不要等到垃圾收集器来处理它。
2. 在关闭数据库连接前确保关闭了所有用户定义的事务。
3. 不要关闭数据库中所有的连接,至少保证连接池中有一个连接可用。如果内存和其他资源是你必须首先考虑的问题,可以关闭所有的连
接,然后在下一个请求到来时创建连接池。连接池FAQ
当第一个连接请求到来时创建连接池;连接池的建立由数据库连接的连接字符创来决定。每一个连接池都与一个不同的连接字符串相关。
当一个新的连接请求到来时如果连接字符串和连接池使用的字符串相同,就从连接池取出一个连接;如果不相同,就新建一个连接池。
当连接池中的所有连接都已经关闭时关闭连接池。
当连接池已经达到它的最大连接数目时,有新的连接请求到来时,新的连接请求将放置到连接队列中。当有连接释放给连接池时,连接池将
新释放的连接分配给在队列中排队的连接请求。你可以调用close和dispose将连接归还给连接池。
对于.NET应用程序而言,默认为允许连接池。(这意味着你可以不必为这件事情做任何的事情)当然,如果你可以在SQLConnection对象的连
接字符串中加进Pooling=true;确保你的应用程序允许连接池的使用。
ADO.NET默认为允许数据库连接池,如果你希望禁止连接池,可以使用如下的方式:
1) 使用SQLConnection对象时,往连接字符串加入如下内容:Pooling=False;
2) 使用OLEDBConnection对象时,往连接字符串加入如下内容:OLE DB Services=-4;

5. 浅谈LINQ如何插入删除和更新数据库记录备注

)。但是,LINQ TO SQL不是万能的。例如,你在重新修改或设计数据库表格后,原先使用LINQ TO SQL生成的DATACONTEXT类并不会自动更新。因此,针对这些更改之后的操作,需要特别注意。二、问题描述[一]本文中首先记录的是使用LINQ插入数据库记录时涉及的一个基本概念级问题。请看下面的代码片断:public bool InsertUserStatus(string UserName){eMailDataContext dt = new eMailDataContext();try{//删除可能存在的原有用户状态信息 Table3 u = dt.Table3.First(m => m.abc == UserName); //if (dt.Table3.Count() != 0)//{// Table3 u = dt.Table3.First(m => m.abc == UserName); //if (u != null)//{dt.Table3.DeleteOnSubmit(u); dt.SubmitChanges();//}//}//创建新的用户状态信息 Table3 userstatus = new Table3{abc = UserName};//插入到数据库表格UserStatus中 dt.Table3.InsertOnSubmit(userstatus); dt.SubmitChanges();return true;}catch (System.InvalidOperationException){return false;//(2)}}上述代码的意思是,在表格Table3 中先删除可能存在的符合条件的记录,然后在此表格中再插入一条记录数据。上面的代码将“可能”引发异常,将流程控制转向(2)处。这些“可能”在于,数据表格Table3 中最初无记录,则必引发异常;如果有记录,则一切符合既定操作要求。于是,修改上面的代码为如下:public bool InsertUserStatus(string UserName){eMailDataContext dt = new eMailDataContext();try{//删除可能存在的原有用户状态信息 if (dt.Table3.Count() != 0)// (1){Table3 u = dt.Table3.First(m => m.abc == UserName); if (u != null){dt.Table3.DeleteOnSubmit(u); dt.SubmitChanges();}}//创建新的用户状态信息 Table3 userstatus = new Table3{abc = UserName};//插入到数据库表格UserStatus中 dt.Table3.InsertOnSubmit(userstatus); dt.SubmitChanges(); return true;}catch (System.InvalidOperationException){return false;}}也就是说,删除操作前需要先判定数据表格是否记空--这可以通过红色的if语句((1)处)来实现。如此以来,无论表格中是否事先存在记录都可以往下执行可能的删除及插入操作了。[二]再来看一个例子,例如: //删除旧的邮件 public static void DeleteSubject(string UserName, string host){eMailDataContext dt = new eMailDataContext(); string cmdText = "delete from MailDownloadTemp where UserName=" + "'"+UserName +"'"+ " and Host=" + "'"+host+"'";try{int result = dt.ExecuteCommand(cmdText);return;}catch (System.InvalidOperationException){return;}}上述操作同样抛出异常。因此,需要同上面提到的那样,先进行数据库表格记录数据判断,再进行可能的删除操作。因此,再修改上面代码,如下所示: //删除旧的邮件

6. 什么是LINQ它主要由哪些技术组成

语言集成查询(Language Intergrated Query ,LINQ),LINQ是集成到c#语言中的一个面向对象的统一查询模型,是一种独立于数据源的查询语言来访问特定数据的解决方案。LINQ也是面向对象的,而且也可以扩展,在一定程度上使c#更接近于函数式编程,使开发人员的关注焦点从数据(状态)的具体细节转移到信息(对象)行为。并且它还为数据查询提供了一个统一的模型,不再依赖于某种特定语言或技术的难以预测的变化。通过LINQ可以使用同一查询模型访问SQL数据库和XML文件,还可以用来访问数据。
技术:LINQ定义了大约40个查询操作符;如下
<1>排序
OrderBy
按升序对值进行排序。
OrderByDescending
按降序对值进行排序。
ThenBy
按升序执行次要排序。
ThenByDescending
按降序执行次要排序。
Reverse
颠倒集合中的元素的顺序。
<2>Set 运算
Distinct
从集合移除重复值。
Except
返回差集,差集是指位于一个集合但不位于另一个集合的元素。
Intersect
返回交集,交集是指同时出现在两个集合中的元素。
Union
返回并集,并集是指位于两个集合中任一集合的唯一的元素。
<3>Filtering Data(筛选数据)
OfType
根据值强制转换为指定类型的能力选择值。
Where
选择基于谓词函数的值。
<4>限定符操作
All
确定是否序列中的所有元素都满足条件。
Any
确定序列中是否有元素满足条件。
Contains
确定序列是否包含指定的元素。
<5>数据分区
Skip
跳过序列中的指定位置之前的元素。
SkipWhile
基于谓词函数跳过元素,直到某元素不再满足条件。
Take
提取序列中的指定位置之前的元素。
TakeWhile
基于谓词函数提取元素,直到某元素不再满足条件。
<6>联接运算
Join
根据键选择器函数联接两个序列并提取值对。
GroupJoin
根据键选择器函数联接两个序列,并对每个元素的结果匹配项进行分组。
<7>数据分组
GroupBy
对共享公共属性的元素进行分组。每个组都由一个 IGrouping<TKey, TElement>对象表 示。
ToLookup
根据键选择器函数将元素插入到 Lookup<TKey, TElement> (一个一对多字典)中。
<8>生成操作
DefaultIfEmpty
将空集合替换为具有默认值的单一实例集合。
Empty
返回空集合。
Range
生成包含数字序列的集合。
Repeat
生成包含一个重复值的集合。
<9>元素操作
ElementAt
返回集合中指定索引处的元素。
ElementAtOrDefault
返回集合中指定索引处的元素;如果索引超出范围,则返回默认值。
First
返回集合中的第一个元素或满足条件的第一个元素。
FirstOrDefault
返回集合中的第一个元素或满足条件的第一个元素。如果没有这样的元素,则返回默认值。
Last
返回集合中的最后一个元素或满足条件的最后一个元素。
LastOrDefault
返回集合中的最后一个元素或满足条件的最后一个元素。如果没有这样的元素,则返回默认值。
Single
返回集合中的唯一元素或满足条件的唯一元素。
SingleOrDefault
返回集合中的唯一元素或满足条件的唯一元素。如果没有这样的元素或集合不是正好包含一个元素,则返回默认值。
<10>converting Data Types (转换数据类型)
AsEnumerable
返回类型为 IEnumerable< T> 的输入。
AsQueryable
将(泛型) IEnumerable 转换为(泛型) IQueryable。
Cast
将集合的元素强制转换为指定类型。
OfType
根据值强制转换为指定类型的能力筛选值。
ToArray
将集合转换为数组。此方法强制执行查询。
ToDictionary
根据键选择器函数将元素放入 Dictionary< TKey, TValue> 中。 此方法强制执行查询。
ToList
将集合转换为 List<T> 。 此方法强制执行查询。
ToLookup
根据键选择器函数将元素放入 Lookup< TKey, TElement> (一对多字典)中。 此方法强制执行查询。
<11>串联运算
Concat
串联两个序列以组成一个序列。
<12>聚合操作
Aggregate
对集合值执行自定义聚合运算。
Average
计算值集合的平均值。
Count
对集合中的元素进行计数,还可以仅对满足某一谓词函数的元素进行计数。
LongCount
对大型集合中的元素进行计数,还可以仅对满足某一谓词函数的元素进行计数。
Max
确定集合中的最大值。
Min
确定集合中的最小值。
Sum
计算集合中值的总和。

7. C#的lINQ怎么用干什么用的

1.LINQ:Language Integrated Query 语言集成查询。
2.LINQ通过对象的方式对数据库进行描述。
3.LINQ是一种能够快速对大部分数据源进行访问和数据整合的一种技术,使用相同的基本查询表达式模式类查询和转换SQL数据库、ADO.NET数据集、XML文档和流已经.NET集合中的数据。
4.使用方法:
LINQ to Objects

LINQ to DataSet
LINQ to SQL
LINQ to Entities
LINQ to XML

8. 使用Linq查询数据库的问题

varlst=(fromcinquanxian.View_人员信息
wherec.工号==this.gh.Text.Trim()&&c.密码==this.pwd.Text
selectc.权限).ToList();

if(lst.Count<0)
{
varentity=lst[0];
varright=entity.权限;
switch(right)
{
case0:
break;
case1:
break;
//case2,3,4......
default:
break;
}
}


望采纳

9. 如何使用LINQ链接数据库举个例子(C#.NET)谢谢

1、在App_Code下面添加新项“LINQ to SQL 类”
2、打开该类,设置Name属性(例如MyLinqDB)和Connection属性
3、服务器资源管理器内添加数据库连接
4、将数据库内需要操作的表拖入LINQ to SQL 类的设计视图,并保存
5、新建数据绑定控件例如ListView1
6、后台Page_Load编写代码:
var DB = new MyLinqDB();
var query = from t in DB.T_Users select new {t.ID, t.UserName, t.Password};
ListView1.DataSource = query.Where(t => t.ID > 0).Skip(3 * 20).Take(20);//每页20,第四页
ListView1.DataBind();

10. 什么是LINQ

  • 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) 。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:333
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:374
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:610
java用什么软件写 发布:2025-05-18 03:56:19 浏览:31
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:940
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:737
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:801
网卡访问 发布:2025-05-18 03:35:04 浏览:509
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:370