SQL Anywhere .NET

SQL Anywhere .NET 支持

1、ADO.NET 是 Microsoft 的 ODBC、OLE DB 和 ADO 系列中最新的数据访问 API。它是 Microsoft .NET Framework数据访问组件,可用于访问关系数据库系统。

2、SQL Anywhere .NET 数据提供程序实现了 iAnywhere.Data.SQLAnywhere 命名空间,允许您使用支持 .NET 的任何语言(例如 C# 和 Visual Basic .NET)编写程序,并从 SQL Anywhere 数据库访问数据。

 

SQL Anywhere .NET 数据提供程序功能

SQL Anywhere 支持 Microsoft .NET Framework 版本 2.0、3.0、3.5 和 4.0。提供三个不同的命名空间:

1iAnywhere.Data.SQLAnywhere ADO.NET 对象模型是通用数据访问模型。

2、System.Data.Oledb 此命名空间支持 OLE DB 数据源。

3、System.Data.Odbc 此命名空间支持 ODBC 数据源。

使用 SQL Anywhere .NET程序具有优点:

在 .NET 环境中,SQL Anywhere .NET 程序提供对 SQL Anywhere 的本地访问。它直接与 SQL Anywhere 服务器进行通信而不需要使用 Bridge 技术。因此,SQL Anywhere .NET 数据提供程序比 OLE DB 和 ODBC 数据提供程序速度更快。建议使用此程序访问 SQL Anywhere 数据库。

在 Visual Studio 项目中使用 .NET程序

使用 SQL Anywhere .NET程序和 Visual Studio 开发 .NET 应用程序,方法是在源代码中添加 SQL Anywhere .NET程序的引用,以及一行引用该 SQL Anywhere .NET程序类的语句。

步骤:

1、启动 Visual Studio 并打开项目。

2、在 [解决方案资源管理器] 窗口中,右击 [引用],然后单击 [添加引用]。

引用将指示要包含哪些提供程序并定位 SQL Anywhere .NET 数据提供程序的代码。

单击 [.NET] 选项卡,滚动列表以定位以下之一:

iAnywhere.Data.SQLAnywhere (.NET 2)

iAnywhere.Data.SQLAnywhere (.NET 3.5)

iAnywhere.Data.SQLAnywhere (.NET 4)

注意:缺省位置是 %SQLANY12%\CE\Assembly\V2

3、单击所需的提供程序,然后单击 [OK]。提供程序将添加到项目的 [解决方案资源管理器] 窗口的 [引用] 文件夹中。

4、向源代码指定一条指令,以帮助使用 SQL Anywhere .NET 数据提供程序命名空间以及在其中定义的类型。

在项目添加下面的指令行:

使用的是 C#,请将以下行添加到项目开始处的 using 指令列表中:

using iAnywhere.Data.SQLAnywhere;

SQL Anywhere .NET程序系统要求

在计算机或手持式设备上安装以下项目:

.NET Framework 和/或 .NET Compact Framework 2.0 版或更高版本。

Visual Studio 2005 或更高版本,或者 .NET 语言编译器,例如 C#(仅开发时需要)。

SQL Anywhere .NET程序必需的文件

SQL Anywhere .NET 数据提供程序代码位于每个平台的 DLL 中。

Windows 所需的文件

对于 Windows(除 Windows Mobile 外),需要以下 DLL 之一:

%SQLANY12%\V2\Assembly\V2\iAnywhere.Data.SQLAnywhere.dll

%SQLANY12%\V2\Assembly\V3.5\iAnywhere.Data.SQLAnywhere.v3.5.dll

%SQLANY12%\V2\Assembly\V4\iAnywhere.Data.SQLAnywhere.v4.0.dll

DLL 的选择取决于面向的 .NET 的版本。

提供程序的 Windows 版本还需要以下 DLL。

policy.12.0.iAnywhere.Data.SQLAnywhere.dll策略文件可用于替换创建应用程序的提供程序版本。只要发布了关于提供程序的更新,Sybase 就会更新策略文件。也有用于 3.5 版的提供程序的策略文件 (policy.12.0.iAnywhere.Data.SQLAnywhere.v3.5.dll),以及用于 4.0 版的提供程序的策略文件 (policy.12.0.iAnywhere.Data.SQLAnywhere.v4.0.dll)。

dblgen12.dll该语言 DLL 包含了提供程序发出的英文 (en) 消息。还可使用很多其它语种,包括汉语 (zh)、法语 (fr)、德语 (de) 和日语 (jp)。

dbcon12.dll此 DLL 包含 [Connect to SQL Anywhere] 窗口支持代码。

连接到数据库

1、使用以下代码创建名为 [conn] 的 SAConnection 对象:

SAConnection conn = new SAConnection(connection-string);

Using(SAConnection conn = new SAConnection(connection-string))

{};

注: using语句确保使用 IDisposable 对象接口的对象可以方便释放。

2、打开一个与数据库的连接。

   conn.Open();

3、关闭与数据库

Conn. Close();

访问和操作数据

SQL Anywhere .NE提供两种方法访问数据:

SACommand 对象

SACommand 对象允许用户直接从数据库检索或修改数据的SQL语句及调用存储过程。

SACommand 对象中,SADataReader 用于从查询或存储过程返回只读结果集。SADataReader 每次仅返回一行,但这并不会降低性能,因为 SQL Anywhere 客户端的库使用预取缓冲每次预取多行。

使用 SACommand 对象可以将更改组合成事务,而不是在自动提交模式下操作。使用 SATransaction 对象时,会将行锁定,这样其他用户便无法对其进行修改。

SADataAdapter 对象

SADataAdapter 对象会将整个结果集检索到一个 DataSet 中。DataSet 是用于保存从数据库检索到的数据的断开连接的存储区。之后可以编辑 DataSet 中的数据,编辑完成后,SADataAdapter 对象利用对 DataSet 所做的更改更新数据库。使用 SADataAdapter 时,无法阻止其他用户修改 DataSet 中的行。您需要在应用程序中包含用于解决可能出现的任何冲突的逻辑。

使用 SACommand 对象访问数据

使用 SACommand 对象可针对 SQL Anywhere 数据库执行 SQL 语句或调用存储过程。

可以使用下列方法中的任一种检索数据库中的数据:

ExecuteReader发出返回结果集的 SQL 查询。此方法使用只进、只读游标。可以沿一个方向快速循环遍历结果集中的行。

ExecuteScalar发出返回单个值的 SQL 查询。可以是结果集的第一行中的第一列,或返回集合值(如 COUNT 或 AVG)的 SQL 语句。此方法使用只进、只读游标。

使用 SACommand 对象操作数据

使用 SACommand 对象执行插入、更新或删除,请使用 ExecuteNonQuery 函数。ExecuteNonQuery 函数发出一个不返回结果集的查询(SQL 语句或存储过程)。

注意:‘1’ or ‘1’ = ‘1’的查询漏洞问题。

//拼字符串

cmd.CommandText = "SELECT id FROM \"user\" where name = "+ name ;

 

//解决方法 命名参数

cmd.CommandText = "SELECT id FROM \"user\" where name = :name";

cmd.Parameters.Add("name", name);

 

SADataAdapter 对象访问和操作数据

使用 SADataAdapter 可查看整个结果集,使用 Fill 方法将查询结果填充到此 DataTable 中。

使用 DataTable 的示例

SAConnection conn = new SAConnection("Data Source=DMIS");
conn.Open();
DataTable dt = new DataTable("Results");
SADataAdapter da = new SADataAdapter("SELECT * FROM Employees", conn);
da.Fill(dt);
conn.Close();

使用 DataSet示例

SAConnection conn = new SAConnection(" Data Source=DMIS");
conn.Open();
DataSet ds = new DataSet();
SADataAdapter da = new SADataAdapter("SELECT * FROM Employees", conn);
da.Fill(ds, "Results");
conn.Close();
dataGridView1.DataSource = ds.Tables["Results"];

 

数据库链接字符串

在Web.config文件添加

<connectionStrings>

<add name="ConnString" connectionString="Dsn=webdata;uid=user;pwd=password"/>

</connectionStrings>

在.cs文件中引用ConnString

ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;

 

数据库中的NULL

在数据库字段中的NULL值并不等同于C#中NULL值。

数据库字段中的NULL值,在C#中与DBNull.Value值对应。

可以使用下面函数进行转换:

//判断DBNull值

public object IsDbNull(object DbValue)

{

if (Convert.IsDBNull(DbValue))

{

object value = null;

return value;

}

else

{

return DbValue;

}

}

SQL Anywhere .NET

时间: 2024-10-10 17:18:58

SQL Anywhere .NET的相关文章

SQL查询字段添加括号报错:Operand should contain 1 column(s)

SQL语句:查询连个字段的信息 SELECT (menu_id,menu_captions) FROM bsdb.menulist a WHERE a.menu_id like ('2_'); 然后,因为这是在存储过程中的一个语句所以,在执行存储过程的时候编译不会报错,但是执行的时候却汇报错:Operand should contain 1 column(s):原因不好解释: 下面是官方发解释(MYSQL):https://dev.mysql.com/doc/refman/5.0/en/row-

SQL Server 2008的MSSQLSERVER 请求失败或服务未及时响应

我的是SQL server 2008R2, 以前可以正常的启动SQL server(SQLEXPRESS).SQL server(MSSQLSERVER),有几天没有打开了,就在昨天 开机之后就无法启动MSSQLSERVER了,提示的信息如下图: 快速解决办法如下: 第一步:打开事件查看器,查看windows日志,点击应用程序,查看windows错误日志 http://product.pconline.com.cn/itbk/software/win8/1211/3060037.html 第二步

【Kettle】4、SQL SERVER到SQL SERVER数据转换抽取实例

1.系统版本信息 System:Windows旗舰版 Service Pack1 Kettle版本:6.1.0.1-196 JDK版本:1.8.0_72 2.连接数据库 本次实例连接数据库时使用全局变量. 2.1 创建新转换:spoon启动后,点击Ctrl+N创建新转换 2.2 在新转换界面中,右键点击DB连接,系统会弹出[数据库连接]界面. windows系统环境下,可用${}获取变量的内容. 说明: 连接名称:配置数据源使用名称.(必填) 主机名称:数据库主机IP地址,此处演示使用本地IP(

sql常用格式化函数及字符串函数

一.常用格式化函数 1.日期转字符串 select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS') //2017-09-18 22:41:50 YYYY:年(4和更多位) MM:月份号(01-12) DD:一个月里的日(01-31) HH24:一天的小时数(00-23) MI:分钟(00-59) SS:秒(00-59) 2.字符串转日期 select to_date('2017-09-18','YYYY-MM-DD') //2017-09-

Bootstrap + AngularJS+ Ashx + SQL Server/MySQL

去年年底12月,为适应移动端浏览需求,花了1个月时间学习Bootstrap,并将公司ASP网站重构成ASP.NET. 当时采取的网站架构: Bootstrap + jQuery + Ashx + SQL Server 时间紧,没人带,只能硬着头皮,最后如期完成,但是也遗留了几个问题. 问题: 1.页面查询条件太复杂,太多的checkbox,jQuery操作DOM虽然方便,但是组合成json提交给后端还是比较麻烦,有没有天然支持json的前端框架或者脚本语言? html控件做的任何修改,都自动保存

Spark SQL 之 Join 实现

原文地址:Spark SQL 之 Join 实现 Spark SQL 之 Join 实现 涂小刚 2017-07-19 217标签: spark , 数据库 Join作为SQL中一个重要语法特性,几乎所有稍微复杂一点的数据分析场景都离不开Join,如今Spark SQL(Dataset/DataFrame)已经成为Spark应用程序开发的主流,作为开发者,我们有必要了解Join在Spark中是如何组织运行的. SparkSQL总体流程介绍 在阐述Join实现之前,我们首先简单介绍SparkSQL

PL/SQL developer 连接oracle数据库报错“initialization error could not load oci.dll”

声明:PL/SQL 版本:PL/SQL Developer 9.0.6 (http://files.allroundautomations.com/plsqldev906.exe) 报错提示如图: 原因:PL/SQL只对32位OS进行支持,解决方法是额外加载一个oci.dll文件 解决办法:1.下载OCI.DLL相关库文件.地址: (需注册Oracle账号) http://www.oracle.com/technetwork/topics/winsoft-085727.html ----->  

WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等

核心概念 WAF Web应用防火墙(Web Application Firewall),简称WAF. Web攻击 针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入.XSS跨站.Webshell上传.命令注入.非法HTTP协议请求.非授权文件访问等.

sql

use simulation; # 多条SQL语句必须以分号分隔 show DATABASES ; show TABLES ; show COLUMNS from customers; # SQL语句不区分大小写 SHOW COLUMNS FROM products; SHOW COLUMNS FROM vendors; SHOW COLUMNS FROM orders; SHOW COLUMNS FROM productnotes; SHOW COLUMNS FROM orderitems;

MyBatis学习(四)XML配置文件之SQL映射的XML文件

SQL映射文件常用的元素: 1.select 查询语句是MyBatis最常用的语句之一. 执行简单查询的select元素是非常简单的: <select id="selectUser" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id} </select> 这个语句被称作selectUser,接受一个int类型的参数,