关于C语言连接SQL数据库…

关于C语言连接SQL数据库…,第1张

1、配置ODBC数据源。

2、使用SQL函数进行连接。

对于1、配置数据源,配置完以后就可以编程 *** 作数据库了。

对于2、使用SQL函数进行连接,参考代码如下:

#include<windows.h>

#include<sql.h>

#include<sqlext.h>

void main()

{

HENV henv //环境句柄

HDBC hdbc //数据源句柄

HSTMT hstmt //执行语句句柄

unsigned char datasource[]="数据源名称" //即<a href="https://www.baidu.com/s?wd=ODBC&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLrHIWuWRsPWTvujD4P1Nb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1mYP1R1n1cknW6sPWbzrj03Pf" target="_blank" class="baidu-highlight">ODBC</a>源中设置的源名称

unsigned char user[]= "用户名" //数据库的帐户名

unsigned char pwd[]= "密码" //数据库的密码

unsigned char search[]="select xm from stu where xh=0"

SQLRETURN retcode//记录各SQL函数的返回情况

// 分配环境句柄

retcode= SQLAllocEnv(&henv) // 等介于 SQLAllocHandle(SQL_HANDLE_ENV, SQL_<a href="https://www.baidu.com/s?wd=NULL&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLrHIWuWRsPWTvujD4P1Nb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1mYP1R1n1cknW6sPWbzrj03Pf" target="_blank" class="baidu-highlight">NULL</a>_HANDLE, &henv)

// 设置ODBC环境版本号为3.0

retcode= SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0)

// 分配连接句柄

retcode= SQLAllocConnect(henv,&hdbc)// 等介于 SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc)

//设置连接属性,登录超时为*rgbValue秒(可以没有)

// SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)(rgbValue), 0)

//直接连接数据源

// 如果是windows身份验证,第二、三参数可以是<a href="https://www.baidu.com/s?wd=NULL&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLrHIWuWRsPWTvujD4P1Nb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1mYP1R1n1cknW6sPWbzrj03Pf" target="_blank" class="baidu-highlight">NULL</a>,也可以是任何字串

//SQL_NTS 即 "<a href="https://www.baidu.com/s?wd=Null&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLrHIWuWRsPWTvujD4P1Nb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1mYP1R1n1cknW6sPWbzrj03Pf" target="_blank" class="baidu-highlight">Null</a>-Terminated String"

retcode= SQLConnect(hdbc,datasource, SQL_NTS, user, SQL_NTS , pwd, SQL_NTS )

//分配语句句柄

retcode= SQLAllocStmt(hdbc,&hstmt) // 等介于 SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt)

//直接执行查询语句

retcode=SQLExecDirect(hstmt,search,SQL_NTS)

//将数据缓冲区绑定数据库中的相应字段(i是查询结果集列号,queryData是绑定缓冲区,BUFF_LENGTH是缓冲区长度)

SQLBindCol(hstmt, i, SQL_C_CHAR, queryData[i-1], BUFF_LENGTH, 0)

//遍历结果集到相应缓冲区 queryData

SQLFetch(hstmt)

/*

*对遍历结果的相关 *** 作,如显示等

*/

//注意释放顺序,否则会造成未知错误!

SQLFreeHandle(SQL_HANDLE_STMT, hstmt)

SQLDisconnect(hdbc)

SQLFreeHandle(SQL_HANDLE_DBC, hdbc)

SQLFreeHandle(SQL_HANDLE_ENV, henv)

}

代码看上去很复杂,其实都可以直接复制。其中需要改的是数据源名称、数据库用户名、数据库密码和SQL语句。

然后就是SQLFetch后得到结果集后,如何使用的问题了。

在下面的注释部分 填写你的处理代码即可。

/*

*对遍历结果的相关 *** 作,如显示等

*/

用odbc或db-libary给你一小段db-library程序

int CreateProc(PDBPROCESS * dbproc,char * pwd,char * sname)

{

PLOGINREC login

// char sname[20]

unsigned short num

// memset(sname,0,sizeof(sname))

login=dblogin()

DBSETLUSER(login,"sa")

if(strlen(pwd)>0)

{

DBSETLPWD(login,pwd)

}

DBSETLVERSION(login, DBVER60)

dbprocerrhandle(login,err_handler)

dbprocmsghandle(login,msg_handler)

// dbserverenum(LOC_SEARCH,sname,sizeof(sname),&num)

DBSETLTIME(login,20)

*dbproc=dbopen(login,sname)

if(*dbproc == NULL){

return ERR

}

dbuse(*dbproc,"ccenter")

dbfreelogin(login)

return OK

}

int check_grp_no(int grp_no, unsigned int * small_len)

{

int res=0

int cnt=0

dbcancel(dbproc)

dbfcmd(dbproc," select small_len from grp_table where grp_no=%d",grp_no)

res=dbsqlexec(dbproc)

if((res=dbresults(dbproc))==SUCCEED){

dbbind(dbproc,1,INTBIND,0,(unsigned char *)small_len)

while(dbnextrow(dbproc)!=NO_MORE_ROWS){

cnt++

return OK

}

}

return ERR

}

1. C#中怎么把数据保存到ACCESS数据库

Sqlmand是 *** 作sql数据库的,Access用OleDbmand首先定义一个链接对象OleDbConnection conn = new OleDbConnection("[数据库连接字符串]");conn.Open(); 打开数据库连接OleDbmand cmd = new OleDbmand("[Insert/Update/Delte语句]", conn)cmd.ExecuteNonQuery(); 执行 *** 作,如果是查询则不是用这个方法 最后别忘记关闭数据库连接和释放对象。

2. C# 如何将 图片直接存入SQL数据库中

文件转成二进制流出入数据库

private void button2_Click(object sender, EventArgs e)

{

FileStream fs = new FileStream(textBox1.Text, FileMode.Open)

BinaryReader br = new BinaryReader(fs)

Byte[] byData = br.ReadBytes((int)fs.Length)

fs.Close()

string conn = "server=.database=testDBUid=saPwd=sa "

SqlConnection myconn = new SqlConnection(conn)

myconn.Open()

string str = "insert into pro_table (pro_name,pro_file) values('测试文件',@file)"

Sqlmand mym = new Sqlmand(str, myconn)

mym.Parameters.Add("@file", SqlDbType.Binary, byData.Length)

mym.Parameters["@file"].Value = byData

mym.ExecuteNonQuery()

myconn.Close()

}

从数据库中把二进制流读出写入还原成文件

private void button4_Click(object sender, EventArgs e)

{

string conn = "server=.database=testDBUid=saPwd=sa "

string str = "select pro_file from pro_table where pro_name='测试文件' ";

SqlConnection myconn = new SqlConnection(conn)

SqlDataAdapter sda = new SqlDataAdapter(str, conn)

DataSet myds = new DataSet()

myconn.Open()

sda.Fill(myds)

myconn.Close()

Byte[] Files = (Byte[])myds.Tables[0].Rows[0]["pro_file"]

BinaryWriter bw = new BinaryWriter(File.Open("D:\\2.rdlc",FileMode.OpenOrCreate))

bw.Write(Files)

bw.Close()

}

3. c#如何把图片存取到SQL数据库

一楼开玩笑了!!可以保存到数据库的。

首先,你的数据库里要有一个存放二进制数据的字段。然后,用一个文件选择控件,让用户选择图片。

用FileStream.Read把图片文件按照二进制读取到byte[]中,接下来,链接数据库,用sql语句,进行相应的插入 *** 作,将数据库的二进制数据的字段赋值为byte[]就行了。以下是保存和显示的代码:private void SaveImage(string fileName) { Read the file into a byte array using (FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { byte[] imageData = new Byte[fs.Length]fs.Read(imageData, 0, (int)fs.Length)using (SqlConnection conn = new SqlConnection(connectionString)) { string sql = "insert into image (imagefilename,blobdata) values (@filename,@blobdata)"Sqlmand cmd = new Sqlmand(sql, conn)cmd.Parameters.Add("@filename",SqlDbType.Text)cmd.Parameters["@filename"].Direction = ParameterDirection.Inputcmd.Parameters.Add("@blobdata", SqlDbType.Image)cmd.Parameters["@blobdata"].Direction = ParameterDirection.InputStore the byte array within the image field cmd.Parameters["@filename"].Value = fileNamecmd.Parameters["@blobdata"].Value = imageDataconn.Open()if (cmd.ExecuteNonQuery() == 1) { MessageBox.Show("Done")} } } } private void LoadImage(string fileName) { using (SqlConnection conn = new SqlConnection(connectionString)) { string sql = "select blobdata from Image where ImageFileName like @filename"Sqlmand cmd = new Sqlmand(sql, conn)cmd.Parameters.Add("@filename", SqlDbType.Text)cmd.Parameters["@filename"].Value = fileNameconn.Open()object objImage = cmd.ExecuteScalar()byte[] buffer = (byte[])objImageBinaryWriter bw = new BinaryWriter(new FileStream("C:\\abcd.", FileMode.Create))bw.Write(buffer)bw.Close()MemoryStream ms = new MemoryStream(buffer)Image bgImage = Image.FromStream(ms)ms.Close()this.BackgroundImage = bgImage} } ------------------------------------------------------------------PS:用空情报我踩踩空间,谢谢。

/kxl361。

4. 如何将文件的路径存入SQL数据库中去

建一个表:JpgFiles,其中至少包含一个列:JpgPath,用来存放绝对路径的字符串,所以这个列需要用varchar,长度假设为50,不够的话自己再增加。

string strPath = @"d:\baidu\up"

string[] fileNames = System.IO.Directory.GetFiles(strPath)

SqlConnection Cn=new SqlConnection(这里写你的连接串);

Sqlmand Cmd=new Sqlmand("Insert JpgFiles values (@JpgPath)",Cn)

Cmd.Parameters.Add("@JpgPath",SqlDbType.VarChar,50)

foreach (string strName in fileNames)

{

Cmd.Parameters[0].Value=strName

Cmd.ExecuteNoQuery()

}

5. 怎样将数据存入mysql数据库

MySQL命令行导出数据库:

1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录

如我输入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin

(或者直接将windows的环境变量path中添加该目录)

2,导出数据库:mysqldump -u 用户名 -p 数据库名 >; 导出的文件名

如我输入的命令行:mysqldump -u root -p news >news.sql (输入后会让你输入进入MySQL的密码)

(如果导出单张表的话在数据库名后面输入表名即可)

3、会看到文件news.sql自动生成到bin文件下

命令行导入数据库:

1,将要导入的.sql文件移至bin文件下,这样的路径比较方便

2,同上面导出的第1步

3,进入MySQL:mysql -u 用户名 -p

如我输入的命令行:mysql -u root -p (输入同样后会让你输入MySQL的密码)

4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为news的目标数据库

5,输入:mysql>use 目标数据库名

如我输入的命令行:mysql>use news

6,导入文件:mysql>source 导入的文件名;

如我输入的命令行:mysql>source news.sql

6. 如何把文件存入到sql server 2008

1.MDF文件

在企业管理器中

右击数据库

点击所有任务

附加数据库

点三个点选择文件

选中U盘中的MDF文件确定即可

2.BAK等备份文件:

新建空数据库,取名最好为原数据库名.

右击新建的数据库

点所有任务

点还原数据库

点从设备

点选择设备

点添加

定位到U盘中您的备份的文件

确定

点选项

点在现有数据库上强制还原

点确定

等待

完成!

另外,站长团上有产品团购,便宜有保证


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10708290.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存