Perl/C#连接Oracle/SQL Server和简单操作
连接数据库是一个很常见也很必须的操作。先将我用到的总结一下。
1. Perl 连接数据库
Perl 连接数据库的思路都是:
1)使用DBI模块; 2)创建数据库连接句柄dbh; 3)利用dbh创建语句句柄sth; 4)利用sth执行sql语句; 5)利用sth处理数据。
连接Oracle:
my $dbh=DBI->connect("DBI:Oracle:host=$hostname;sid=$sid",$username,$passwd);
### deal with multi return value
my $sql=qq(select uid_der from wbphish_usr_der);
$sth->execute();
my $sth=$dbh->prepare($sql);
$sth->execute() or die;
my @uid;
while(my @row=$sth->fetchrow_array)
{ push @uid,$row[];}
### deal with single return value
my $sql="SELECT max(DEMO) FROM phishing"
$sth->execute();
my $sth=$dbh->prepare($sql);
$sth->execute() or die;
my $id=$dbh->selectrow_array($sql);
其中host是数据库server的ip地址,sid为连接的数据库。
连接SQL Server:
my $dbh = DBI->connect("dbi:ODBC:driver={SQL Server};Server=127.0.0.1;Database=$dbs;UID=$uid;PWD=$pwd");
my $sth = $dbh->prepare($sql);
$sth->execute();
其中Server是server的ip地址,这里是local地址,Database为连接的数据库。
2. C# 连接数据库
C# 连接数据库的思路是:
1)连接给定参数建立连接对象; 2)利用连接对象建立SQL语句对象; 3)利用SQL语句对象执行并处理数据。
连接SQL Server:
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
/*Create Connection*/
//connection-string(Local Server:127.0.0.1) & SQL-string define
string conString = "Server=(local); database=test; uid=sa; password=123456";
string sqlString = "select top 10 " + metricName + ",MetricTime from Metric where MetricTime > @metricTime order by MetricTime";
//create a connection
SqlConnection con = new SqlConnection(conString);
con.Open(); /*First way*/
//create a SQL command within connection, use SqlDataReader(light-level) to read retrieved data
SqlCommand cmd = new SqlCommand(sqlString, con);
SqlParameter[] sps = new SqlParameter[] { new SqlParameter("@metricTime", metricTime) }; //Use SqlParameter to avoid "SQL injection".
cmd.Parameters.AddRange(sps);
SqlDataReader sdr = cmd.ExecuteReader();
//Read data from DataReader
while (sdr.Read())
Console.WriteLine((double)sdr[metricName]); con.Close();
cmd.Dispose(); /*Second way*/
//create a SQL command within connection, use SqlDataAdapter to read retrieved data
SqlDataAdapter sqlDad = new SqlDataAdapter(sqlString, sqlCon);
SqlParameter sqlPar = new SqlParameter("@metricTime", metricTime); //Use SqlParameter to avoid "SQL injection".
sqlDad.SelectCommand.Parameters.Add(sqlPar);
DataSet metricDS = new DataSet("MetricDS");
sqlDad.Fill(metricDS, "Metric");
//Read data from DataSet
foreach (DataRow row in dst.Tables["Monitor"].Rows)
Console.WriteLine(row["ID"] + "\t" + row["RecordTime"] + "\t" + row["VideoView"] + "\t" + row["Fluency"]); sqlCon.Close();
}
}
}
其中连接字串中Server是数据库server的ip地址,database是指定连接的数据库。
代码首先建立连接,然后分别以SqlDataReader和SqlDataAdapter两种方式处理了数据,且利用了SqlParameter来避免SQL injection。
以上看来,连接数据库的时候,你得告诉程序:
1)我去连接哪个数据库server呀,2)我连到server了,我去连哪个数据库呀?不然我的sql语句找不到table么。 3)连接之后,我可以有多种方式取得数据
Perl/C#连接Oracle/SQL Server和简单操作的更多相关文章
- Oracle,SQL Server 数据库较MySql数据库,Sql语句差异
原文:Oracle,SQL Server 数据库较MySql数据库,Sql语句差异 Oracle,SQL Server 数据库较MySql数据库,Sql语句差异 1.关系型数据库 百度百科 关系数据库 ...
- 介绍几种大型的Oracle/SQL Server数据库免费版
我们知道,Oracle和SQL Server等大型数据库也都存在一些免费的版本,这些免费的版本已经能够满足许多中小项目的需求.对于在校大学生来说,从学习的目标上来讲,安装免费版的大型数据库也就足够用了 ...
- Linux下安装SQL Server 2016(连接篇SQL Server on linux)
连接数据库 (1)设置防火墙 要连接数据库,首先要打开防火墙上1433端口,也就是,增加tcp端口1433到公共区域,并且永久生效. [root@localhost Desktop]# firewal ...
- Jmeter—8 连接microsoft sql server数据库取数据
本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...
- SQL Server里简单参数化的痛苦
在今天的文章里,我想谈下对于即席SQL语句(ad-hoc SQL statements),SQL Server使用的简单参数化(Simple Parameterization)的一些特性和副作用.首先 ...
- Jmeter入门8 连接microsoft sql server数据库取数据
本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...
- 1433端口无法连接(sql server 数据库无法访问问题)解决思路
登录远程SQL服务器一 看ping 服务器IP能否ping通. 这个实际上是看和远程sql server 2000服务器的物理连接是否存在.如果不行,请检查网络,查看配置,当然得确保远程sql ser ...
- mysql,oracle,sql server数据库默认的端口号,端口号可以为负数吗?以及常用协议所对应的缺省端口号
mysql,oracle,sql server数据库默认的端口号? mysql:3306 Oracle:1521 sql server:1433 端口号可以为负吗? 不可以,端口号都有范围的,0~65 ...
- 无法打开到SQL Server的连接 (Microsoft SQL Server, 错误:53) .
标题: 连接到服务器 ------------------------------ 无法连接到 MSSQLSERVER. ------------------------------ 其他信息: 在与 ...
随机推荐
- Python学习实践 | speech智能语音模块
最近的生活.学习节奏很是容易被打断,终于,在今天,既实习结束之后,夏令营也结束了. 前几天,一个人在复习地很累的时候,又重新将Python捡了起来,看了挺多的知识点. 真是太有意(wu)思(liao) ...
- iOS开源项目阅读整理
精读过的开源项目,随时整理,随时更新,本文只记录项目地址,名称和内容,不发表心得. 1.AFNetWorking iOS人都知道,不细诉. 2.iCarousel 旋转木马,选项卡很不错的UI解决方案 ...
- C# 6.0可能会支持模式匹配了
今天在CodePlex的Roslyn讨论区发现了一个帖子:Draft spec for records and pattern-matching in C#,估计MS计划在C# 6.0中支持模式匹配了 ...
- dwz中弹出的窗口页面如何获取前页面(点击按钮的页面)的元素???
在页面A.jsp中点击一个按钮,使用$.pdialog.open()方法弹出b.jsp页面(对话框窗口),我要在b.jsp中选中值然后关闭窗口(b.jsp)返回值给A.jsp~ =========== ...
- sql server博客
SQLSERVER MSDN论坛 SQLSERVER 补丁博客 SQLSERVER中国研发中心 微软亚太区数据库技术支持组官方博客 PAUL的SQLSKILL网站 sqlsaturday网站 sqls ...
- delphi设计浮动窗口
delphi设计浮动窗口 用过Photoshop的朋友一定对它的那些方便的浮动面板记忆犹新,其实这些面板就是一个个的小窗体,但这些小窗体都放在Photoshop的主窗体上 (不是存在主窗体中),有自己 ...
- 安装完office2016 64位后,在安装visio时,报错,无法安装,
安装环境要求: 系统要求:win8,win10等: office要求:sw(批量版)不能和cn(零售版).365版混装.-------重点注意事项 一定要注意批量版和零售版的区别,各版本之间绝对不允许 ...
- 使用Nmon监控Linux的系统性能
Nmon(得名于 Nigel 的监控器)是IBM的员工 Nigel Griffiths 为 AIX 和 Linux 系统开发的一款计算机性能系统监控工具.Nmon 可以把操作系统的统计数据展示在屏幕上 ...
- mongodb权限管理(转)
Mongodb 预定义角色 Mongodb 中预定义了一些角色,把这些角色赋予给适当的用户上,用户就只能进行角色范围内的操作. 数据库用户角色 (所有数据库都有) read 用户可以读取当前数据库的数 ...
- shell--管道命令(pipe)
管道命令使用的是“|”这个界定符号 管道命令“|”仅能处理经由前面一个命令传来的正确信息,也就是standard output的信息,对于standard error并没有直接处理的能力 每个管道后面 ...