连接数据库是一个很常见也很必须的操作。先将我用到的总结一下。

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和简单操作的更多相关文章

  1. Oracle,SQL Server 数据库较MySql数据库,Sql语句差异

    原文:Oracle,SQL Server 数据库较MySql数据库,Sql语句差异 Oracle,SQL Server 数据库较MySql数据库,Sql语句差异 1.关系型数据库 百度百科 关系数据库 ...

  2. 介绍几种大型的Oracle/SQL Server数据库免费版

    我们知道,Oracle和SQL Server等大型数据库也都存在一些免费的版本,这些免费的版本已经能够满足许多中小项目的需求.对于在校大学生来说,从学习的目标上来讲,安装免费版的大型数据库也就足够用了 ...

  3. Linux下安装SQL Server 2016(连接篇SQL Server on linux)

    连接数据库 (1)设置防火墙 要连接数据库,首先要打开防火墙上1433端口,也就是,增加tcp端口1433到公共区域,并且永久生效. [root@localhost Desktop]# firewal ...

  4. Jmeter—8 连接microsoft sql server数据库取数据

    本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...

  5. SQL Server里简单参数化的痛苦

    在今天的文章里,我想谈下对于即席SQL语句(ad-hoc SQL statements),SQL Server使用的简单参数化(Simple Parameterization)的一些特性和副作用.首先 ...

  6. Jmeter入门8 连接microsoft sql server数据库取数据

    本文以Jmeter 连接microsoft sql server为例. 1 从微软官网下载Microsoft SQL Server JDBC Driver 地址:http://www.microsof ...

  7. 1433端口无法连接(sql server 数据库无法访问问题)解决思路

    登录远程SQL服务器一 看ping 服务器IP能否ping通. 这个实际上是看和远程sql server 2000服务器的物理连接是否存在.如果不行,请检查网络,查看配置,当然得确保远程sql ser ...

  8. mysql,oracle,sql server数据库默认的端口号,端口号可以为负数吗?以及常用协议所对应的缺省端口号

    mysql,oracle,sql server数据库默认的端口号? mysql:3306 Oracle:1521 sql server:1433 端口号可以为负吗? 不可以,端口号都有范围的,0~65 ...

  9. 无法打开到SQL Server的连接 (Microsoft SQL Server, 错误:53) .

    标题: 连接到服务器 ------------------------------ 无法连接到 MSSQLSERVER. ------------------------------ 其他信息: 在与 ...

随机推荐

  1. java web定时任务---quartz

    写在前面: 前面有简单的记录下Timer定时的用法,但是在此次项目中,选择的是quartz来完成定时操作任务的.两者都可以完成定时操作,但是spring可以整合quartz,并且配置起来也比较简便,还 ...

  2. 误删除Ubuntu 14桌面文件夹“~/桌面”,如何恢复?

    一不小心把当前用户的桌面文件夹“/home/wenjianbao/桌面”删了,导致系统把“/home/wenjianbao”当成桌面文件夹.结果,桌面上全是乱七八糟的文件/文件夹. 查看了下网络资料, ...

  3. 连接sqlexpress

    sqlexpress在visualstudio安装时可选择安装. 数据源添加 localhost\sqlexpress window身份认证即可.

  4. win8 下脚本安装IIS

    @echo off      echo 正在添加IIS8.0 功能,依据不同的网络速率,全程大约需要5分钟时间...      start /w pkgmgr /iu:IIS-WebServerRol ...

  5. npm模块安装机制

    npm 是 Node 的模块管理器,功能极其强大.它是 Node 获得成功的重要原因之一.正因为有了npm,我们只要一行命令:npm install,就能安装别人写好的模块 . 一.从 npm ins ...

  6. 一起來玩鳥 Starling Framework(1)一定要的Hello World!

    雖然已經一堆Hello World的介紹文章跟影片了,但中文資料畢竟是比較少,所以不能免俗的來一篇中文版Hello World.首先開啟一個AS3.0專案,fps不用客氣,設為60,Starling很 ...

  7. Python实现局域网内屏幕广播的技术要点分析(转载)

    转载:https://mp.weixin.qq.com/s?timestamp=1498531736&src=3&ver=1&signature=Eq6DPvkuGJi*G5s ...

  8. 【JAVA】StringTokenizer 迭代方式对字符串进行分割

    StringTokenizer是一个用来分隔String的应用类,相当于VB的split函数.1.构造函数public StringTokenizer(String str)public String ...

  9. 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-人机界面如何快速调整大量控件的位置

    打开元素列表,然后直接从顶部按住Shift批量选中控件即可     更多教学视频和资料下载,欢迎关注以下信息: 我的优酷空间: http://i.youku.com/acetaohai123   我的 ...

  10. annex-b格式

    annex-b格式 总的来说H264的码流的打包方式有两种,一种为annex-b byte stream format的格式,这个是绝大部分编码器的默认输出格式,就是每个帧的开头的3~4个字节是H26 ...