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

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


咨詢
建站咨詢
