新聞中心
在C語(yǔ)言開發(fā)中,鏈接數(shù)據(jù)庫(kù)是一個(gè)常見的需求。鏈接數(shù)據(jù)庫(kù)最重要的一步就是編寫數(shù)據(jù)庫(kù)鏈接字符串。本文將詳細(xì)介紹在。

綏陽(yáng)網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司公司2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
1. 數(shù)據(jù)庫(kù)鏈接字符串是什么?
數(shù)據(jù)庫(kù)鏈接字符串是一個(gè)包含了數(shù)據(jù)庫(kù)連接信息的字符串。它包含了數(shù)據(jù)庫(kù)的名稱,服務(wù)器地址,用戶名,密碼等信息。還可以包括其他的選項(xiàng),如執(zhí)行SQL命令之前是否要打開記錄集。
2. 編寫SQL數(shù)據(jù)庫(kù)鏈接字符串
在C語(yǔ)言中,鏈接數(shù)據(jù)庫(kù)最常用的庫(kù)是ODBC (Open Database Connectivity)庫(kù)。ODBC庫(kù)包含了一組標(biāo)準(zhǔn)API,用于連接各種數(shù)據(jù)庫(kù)。使用ODBC庫(kù)鏈接數(shù)據(jù)庫(kù)需要編寫數(shù)據(jù)庫(kù)鏈接字符串。下面將對(duì)常見的SQL數(shù)據(jù)庫(kù)鏈接字符串進(jìn)行講解。
2.1. MySQL
MySQL鏈接字符串的格式如下:
“`c
“Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=mydatabase;User=root;Password=mypassword;Option=3;”
“`
其中,Driver指定ODBC驅(qū)動(dòng)程序,可以從控制臺(tái)的ODBC數(shù)據(jù)源中查找。Server指定服務(wù)器地址,Database指定要連接的數(shù)據(jù)庫(kù)名稱,User和Password分別是用戶名和密碼。
2.2. Microsoft SQL Server
Microsoft SQL Server鏈接字符串的格式如下:
“`c
“Driver={SQL Server};Server=myserver;Database=mydatabase;UID=myusername;PWD=mypassword;Option=3;”
“`
其中,Driver指定ODBC驅(qū)動(dòng)程序,可以從控制臺(tái)的ODBC數(shù)據(jù)源中查找。Server指定服務(wù)器地址,Database指定要連接的數(shù)據(jù)庫(kù)名稱,UID和PWD分別是用戶名和密碼。
2.3. Oracle
Oracle鏈接字符串的格式如下:
“`c
“Driver={Oracle in XE};Server=myserver;Database=mydatabase;UID=myusername;PWD=mypassword;”
“`
其中,Driver指定ODBC驅(qū)動(dòng)程序,可以從控制臺(tái)的ODBC數(shù)據(jù)源中查找。Server指定服務(wù)器地址,Database指定要連接的數(shù)據(jù)庫(kù)名稱,UID和PWD分別是用戶名和密碼。
2.4. PostgreSQL
PostgreSQL鏈接字符串的格式如下:
“`c
“Driver={PostgreSQL Unicode};Server=myserver;Database=mydatabase;UID=myusername;PWD=mypassword;”
“`
其中,Driver指定ODBC驅(qū)動(dòng)程序,可以從控制臺(tái)的ODBC數(shù)據(jù)源中查找。Server指定服務(wù)器地址,Database指定要連接的數(shù)據(jù)庫(kù)名稱,UID和PWD分別是用戶名和密碼。
3.
編寫SQL數(shù)據(jù)庫(kù)鏈接字符串可以讓我們方便地鏈接數(shù)據(jù)庫(kù)。在C語(yǔ)言中,使用ODBC庫(kù)可以鏈接各種數(shù)據(jù)庫(kù)。本文簡(jiǎn)要介紹了MySQL、Microsoft SQL Server、Oracle和PostgreSQL的鏈接字符串格式。當(dāng)需要鏈接其他數(shù)據(jù)庫(kù)時(shí),可以根據(jù)相應(yīng)的鏈接字符串格式進(jìn)行編寫。
相關(guān)問題拓展閱讀:
- SqlConnection conn = new SqlConnection(con);這句是什么意思
- 在VS2023中怎樣用C#創(chuàng)建數(shù)據(jù)庫(kù)連接并執(zhí)行sql語(yǔ)句 更好舉個(gè)例子講一下
SqlConnection conn = new SqlConnection(con);這句是什么意思
SqlConnection
conn
=
new
SqlConnection(con);
創(chuàng)建數(shù)據(jù)庫(kù)連接
就是new了一個(gè)蠢哪對(duì)象笑蠢,參數(shù)是數(shù)據(jù)庫(kù)帶升碼連接字符串(con)
string
con
=
ConfigurationManager.ConnectionStrings.ConnectionString;
這個(gè)是數(shù)據(jù)庫(kù)連接字符串
這個(gè)字符串是從配置文件(
ConfigurationManager來(lái)管理配置文件
)中獲取ConnectionStrings(
連接字符串?dāng)?shù)組
).(
指定Key的元素
)里獲取ConnectionString(
數(shù)據(jù)庫(kù)連接字符串
)
SqlConnection
conn
=
new
SqlConnection(con);這句是跡耐什么意思呢。
答:
創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接,不連接就不能使用數(shù)據(jù)庫(kù)
con的定義是這樣的
string
con
=
ConfigurationManager.ConnectionStrings.ConnectionString;
問題補(bǔ)充
16:32
數(shù)據(jù)庫(kù)連接字符串;是什么意思??漏圓
答:網(wǎng)上有成千上萬(wàn)個(gè)數(shù)據(jù)庫(kù),你的程序怎么知道你要連哪個(gè)?你要通過連接字符串,告訴你的程序就連接某個(gè)某個(gè)數(shù)據(jù)庫(kù),姿搜春連接字符串中的內(nèi)容是數(shù)據(jù)庫(kù)的地址、名稱、用戶名和登錄密碼。
這句
string
con
=
ConfigurationManager.ConnectionStrings.ConnectionString
到底從newsConnectionString1里獲取了哪些數(shù)據(jù)??
答:
在VS2023中怎樣用C#創(chuàng)建數(shù)據(jù)庫(kù)連接并執(zhí)行sql語(yǔ)句 更好舉個(gè)例子講一下
default.aspx.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn = dbconn.crtConn();//調(diào)用靜態(tài)數(shù)據(jù)庫(kù)連接類,并實(shí)例化
conn.Open();
SqlCommand cmd = new SqlCommand(“select name from sort”,conn); //建立command 命令 ,并實(shí)例化為cmd
try //試著讀取數(shù)據(jù)庫(kù),如碧猛棚果知亮沒有錯(cuò)誤,則執(zhí)行下面錯(cuò)作
{
SqlDataReader rs = cmd.ExecuteReader();//從數(shù)據(jù)源中讀取數(shù)據(jù),并將數(shù)據(jù)返回到rs中
while (rs.Read()) //使用rs.read()輸出rs中的數(shù)據(jù)內(nèi)容
{
Response.Write(rs.GetString(0)+”
“); //數(shù)據(jù)內(nèi)容悔則
}
}
catch (Exception)//如果執(zhí)行上面sql語(yǔ)句出錯(cuò),則輸出下面語(yǔ)句內(nèi)容!
{
Response.Write(“連接錯(cuò)誤!”);
}
}
}
用C#聯(lián)接SQL有兩種連接方式,字符串連接和配置文件連接。一個(gè)連接字符串的例子是對(duì)數(shù)據(jù)庫(kù)文件NORTHWEND.MDF的連接
Data Source=.\SQLEXPRESS; AttachDbFilename=C:\…\NORTHWND.MDF;
Integrated Security=True; Connect Timeout=30; User Instance=True
數(shù)據(jù)源的值是.\SQLEXPRESS,這里“.”可以寫成(local)或者localhost,表仔指示是本機(jī)數(shù)據(jù)庫(kù)。\SQLEXPRESS表示數(shù)據(jù)庫(kù)NORTHWEND.MDF是免費(fèi)產(chǎn)品。由于數(shù)據(jù)庫(kù)是文件形式,添加了AttachDbFilename說(shuō)明。
另外的例子是對(duì)肆戚友于安裝在服務(wù)器的數(shù)據(jù)庫(kù),例如本機(jī)安裝的數(shù)據(jù)庫(kù),使用SqlClient連接字符串。連接到AdventureWorks2023的連接字符串示例如下:
Data Source=.;Initial Catalog=AdventureWorks2023;Integrated Security=True
對(duì)于SQL Server身份驗(yàn)證,使用指定用戶名和密碼,這里星號(hào)表示有效用戶名和密碼。
“Persist Security Info=False;User ID=*****;Password=*****;”
+”Initial Catalog=AdventureWorks;Server=MySqlServer”
配置文件是可以按需要更改的XML文件。開發(fā)人員可以使用配置文件來(lái)更改設(shè)置,而不必重編譯應(yīng)用程序。
建議不要在代碼中嵌入連接字符串。如果服務(wù)器的位置更改,應(yīng)用程序?qū)⑿枰匦戮幾g。此外,編譯成應(yīng)用程序源代碼的未加密連接字符串可以使用MSIL反匯編程序(ilda.exe)查看而泄密。為了避免將連接字符串存儲(chǔ)在代碼中,可以將代碼存儲(chǔ)在ASP.NET應(yīng)用程序的web.config文件中以及Windows應(yīng)用程序的app.config文件中。
使用配置文件可以避免記憶連接字符串細(xì)節(jié)的負(fù)擔(dān),記憶配置文件的設(shè)置過程比記憶連接字符串的細(xì)節(jié)要容易,因?yàn)樵O(shè)置過程按向?qū)нM(jìn)行,智能提示有助于獲取連接字符串。下面是VS2023設(shè)置配置文件的連接字符串。
具體做法給你推薦一本書:《C#編程指南》,清華大學(xué)出版社,2023年1月出版,相關(guān)內(nèi)容有數(shù)據(jù)庫(kù)的下載安裝、可視化編程、ADO、SQL的FILESTREAM、以及O/R設(shè)計(jì)器(對(duì)象關(guān)系設(shè)計(jì)器)等。在Google或百度輸入書名,作者,出版社,有好幾家網(wǎng)上書店出售裂槐,更低75折,送到家。目前還未在書店上架。
以u(píng)sers表為例,有三個(gè)字段,自增長(zhǎng)的編號(hào)id,int類型;名稱name,nvarchar類型,密碼pwd,nvarchar類型
首先在vs2023中引入using System.Data.SqlClient;命名空間
///
/// 增加
///
/// 姓名
/// 密手升碼
///握陵
public int Insert(string name,string pwd)
{
SqlConnection conn = new SqlConnection(@”Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True”);//Initial Catalog后面跟你數(shù)據(jù)庫(kù)的名字,如果你的段薯戚SqlServer服務(wù)器名稱后面不帶SQLEXPRESS,那么Data Source=.
conn.Open();
string sql = “insert into users(name,pwd) values(@name,@pwd)”;
SqlCommand cmd = new SqlCommand(sql,conn);
SqlParameter parn = new SqlParameter(“@name”,name);
cmd.Parameters.Add(parn);
SqlParameter parp = new SqlParameter(“@pwd”, pwd);
cmd.Parameters.Add(parn);
int result = cmd.ExecuteNonQuery();//result接收受影響行數(shù),也就是說(shuō)result大于0的話表示添加成功
conn.Close();
cmd.Dispose();
return result;
}
///
/// 刪除
///
/// 姓名
/// 密碼
///
public int Update(int id)
{
SqlConnection conn = new SqlConnection(@”Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True”);//Initial Catalog后面跟你數(shù)據(jù)庫(kù)的名字,如果你的SqlServer服務(wù)器名稱后面不帶SQLEXPRESS,那么Data Source=.
conn.Open();
string sql = “delete from users where id=@id”;
SqlCommand cmd = new SqlCommand(sql, conn);
SqlParameter parn = new SqlParameter(“@id”, id);
cmd.Parameters.Add(parn);
int result = cmd.ExecuteNonQuery();//result接收受影響行數(shù),也就是說(shuō)result大于0的話表示刪除成功
conn.Close();
cmd.Dispose();
return result;
}
///
/// 修改
///
/// 姓名
/// 密碼
///
public int Insert(string name, string pwd,int id)
{
SqlConnection conn = new SqlConnection(@”Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True”);//Initial Catalog后面跟你數(shù)據(jù)庫(kù)的名字,如果你的SqlServer服務(wù)器名稱后面不帶SQLEXPRESS,那么Data Source=.
conn.Open();
string sql = “update users set name=@name,pwd=@pwd where id=@id”;
SqlCommand cmd = new SqlCommand(sql, conn);
SqlParameter parn = new SqlParameter(“@name”, name);
cmd.Parameters.Add(parn);
SqlParameter parp = new SqlParameter(“@pwd”, pwd);
cmd.Parameters.Add(parn);
SqlParameter pari = new SqlParameter(“@id”, id);
cmd.Parameters.Add(pari);
int result = cmd.ExecuteNonQuery();//result接收受影響行數(shù),也就是說(shuō)result大于0的話表示修改成功
conn.Close();
cmd.Dispose();
return result;
}
///
/// 查詢
///
///
public DataTable Select()
{
SqlConnection conn = new SqlConnection(@”Data Source=.\SQLEXPRESS;Initial Catalog=Test;Integrated Security=True”);//Initial Catalog后面跟你數(shù)據(jù)庫(kù)的名字,如果你的SqlServer服務(wù)器名稱后面不帶SQLEXPRESS,那么Data Source=.
conn.Open();
string sql = “select * from users”;
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
sda.Fill(dt);
conn.Close();
cmd.Dispose();
return dt;
}
方法寫好后,下面舉一個(gè)查詢的例子,在form窗體中拖一個(gè)DataGridView,然后在Load方法中
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = Select();
}
這樣一運(yùn)行,DataGridView中就會(huì)顯示數(shù)據(jù)了
using System.Data.SqlClient;
//調(diào)用公共類中的CreateDB方法,建立數(shù)據(jù)譽(yù)型連接
SqlConnection con = DB.createDB();
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
//打裂乎開數(shù)據(jù)庫(kù)連接
con.Open();
cmd.CommandText = “sql語(yǔ)句”
//執(zhí)行語(yǔ)句慶源猜//查詢的話要read
cmd.ExecuteNonQuery();SqlDataReader sdr = cmd.ExecuteReader();
//關(guān)閉數(shù)據(jù)庫(kù)連接
con.Close();
關(guān)于c sql數(shù)據(jù)庫(kù)鏈接字符串的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)建站主營(yíng):成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開發(fā)制作等網(wǎng)站服務(wù)。
分享題目:C語(yǔ)言中如何編寫SQL數(shù)據(jù)庫(kù)鏈接字符串(csql數(shù)據(jù)庫(kù)鏈接字符串)
網(wǎng)站URL:http://www.5511xx.com/article/dpheesh.html


咨詢
建站咨詢
