您的位置 主页 正文

C# sql数据库中word文档的保存和读取?

一、C# sql数据库中word文档的保存和读取? 要实现在Sql Server中实现将文件读写Word文件,需要在要存取的表中添加Image类型的列,示例表结构为: CREATE TABLE CONTRACTS ( ID VARCHAR (50), CONTRACT_F

一、C# sql数据库中word文档的保存和读取?

要实现在Sql Server中实现将文件读写Word文件,需要在要存取的表中添加Image类型的列,示例表结构为:

CREATE TABLE CONTRACTS (

ID VARCHAR (50),

CONTRACT_FILE IMAGE

);

要将Word文件存储到数据库的CONTRACT_FILE字段中,需要将文件转换为byte数组,具体代码如下:

将文件转换为byte数组

1 /// <summary>

2 /// 将文件转换为Bytes

3 /// </summary>

4 /// <param name="fileName"></param>

5 /// <returns></returns>

6 public static byte[] File2Bytes(string fileName)

7 {

8 FileStream fs = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Read);

9 byte[] fileDatas = new byte[fs.Length];

10 fs.Read(fileDatas, 0, System.Convert.ToInt32(fs.Length));

11 fs.Close();

12 return fileDatas;

13 }

然后将转换完成的byte[]存储到数据库的对应字段:

将文件存储到数据库

1 /// <summary>

2 /// 更新合同文件

3 /// </summary>

4 /// <param name="id"></param>

5 /// <param name="fileBytes"></param>

6 /// <returns></returns>

7 public bool UpdateContractFile(string id, byte[] fileBytes)

8 {

9 string sql = "UPDATE CONTRACTS SET CONTRACT_FILE=@CONTRACT_FILE WHERE ID=@ID";

10 using (SqlConnection conn = new SqlConnection(this.m_DataAccess.ConnectString))

11 {

12 conn.Open();

13 using (SqlCommand cmd = new SqlCommand())

14 {

15 cmd.Connection = conn;

16 cmd.CommandText = sql;

17 cmd.Parameters.Clear();

18

19 cmd.Parameters.Add(new SqlParameter("@CONTRACT_FILE", SqlDbType.Image));

20 cmd.Parameters["@CONTRACT_FILE"].Value = fileBytes;

21

22 cmd.Parameters.Add(new SqlParameter("@ID", SqlDbType.VarChar));

23 cmd.Parameters["@ID"].Value = id;

24

25 return cmd.ExecuteNonQuery() > 0 ? true : false;

26 }

27 }

28 }

然后将转换完成的byte[]存储到数据库的对应字段:

将文件存储到数据库

1 /// <summary>

2 /// 更新合同文件

3 /// </summary>

4 /// <param name="id"></param>

5 /// <param name="fileBytes"></param>

6 /// <returns></returns>

7 public bool UpdateContractFile(string id, byte[] fileBytes)

8 {

9 string sql = "UPDATE CONTRACTS SET CONTRACT_FILE=@CONTRACT_FILE WHERE ID=@ID";

10 using (SqlConnection conn = new SqlConnection(this.m_DataAccess.ConnectString))

11 {

12 conn.Open();

13 using (SqlCommand cmd = new SqlCommand())

14 {

15 cmd.Connection = conn;

16 cmd.CommandText = sql;

17 cmd.Parameters.Clear();

18

19 cmd.Parameters.Add(new SqlParameter("@CONTRACT_FILE", SqlDbType.Image));

20 cmd.Parameters["@CONTRACT_FILE"].Value = fileBytes;

21

22 cmd.Parameters.Add(new SqlParameter("@ID", SqlDbType.VarChar));

23 cmd.Parameters["@ID"].Value = id;

24

25 return cmd.ExecuteNonQuery() > 0 ? true : false;

26 }

27 }

28 }

要读取数据库中存储的Word文件,需要先将Image类型的字段转换为bytes[],具体代码如下:

通过ID获取文件byte数组

1 /// <summary>

2 /// 获取合同文件

3 /// </summary>

4 /// <param name="id"></param>

5 /// <returns></returns>

6 public byte[] GetContractFile(string id)

7 {

8 string sql = "SELECT CONTRACT_FILE FROM CONTRACTS WHERE ID='{0}'";

9 sql = string.Format(sql, id);

10 object contractFile;

11 contractFile = this.m_DataAccess.ExecuteScalar(sql);

12 if (contractFile == null)

13 {

14 return new byte[0];

15 }

16 else

17 {

18 return (byte[])contractFile;

19 }

20 }

在获取到文件的byte[]后,将该文件通过文件流操作存储为Word文件,具体代码如下:

将byte[]数组存储为Word文件

1 byte[] fileBytes = this.m_ContractsBusiness.GetContractFile(id);

2 if (fileBytes.Length == 0)

3 {

4 XMessageBox.ShowError("未找到合同文件!");

5 return;

6 }

7 SaveFileDialog sfd = new SaveFileDialog();

8 sfd.Filter = "Word文件(*.doc)|*.doc";

9 if (sfd.ShowDialog() == System.Windows.Forms.DialogResult.OK)

10 {

11 try

12 {

13 string saveFileName = sfd.FileName;

14 int arraysize = new int();//注意这句话

15 arraysize = fileBytes.GetUpperBound(0);

16 FileStream fs = new FileStream(saveFileName, FileMode.OpenOrCreate, FileAccess.Write);

17 fs.Write(fileBytes, 0, arraysize);

18 fs.Close();

19 if (XMessageBox.ShowQuestion("文件下载成功,是否立即打开文件?") ==

20 System.Windows.Forms.DialogResult.Yes)

21 {

22 Process.Start(saveFileName);

23 }

24 }

25 catch (Exception ex)

26 {

27 XMessageBox.ShowError("下载文件失败!");

28 }

二、SQL如何保存文本到数据库?

SQL保存文本到数据库的方法如下:

1、进入Navicat Premium中后,登录数据库,找到’表‘这一项,右键点击;

2、右键点击后,选择运行sql文件;

3、点击后会有一个弹窗,查看编码方式,是否是你的数据库文件的编码方式,修改的你的文件编码方式,这里是utf-8,然后点击文件后面的小方块;

4、找到你的sql文件所在的位置,选择文件后点击打开;

5、检查你的编码方式,没问题后点击开始;

6、等待文件执行完毕后,检查没有错误,点击关闭;

7、去Navicat Premium查看,点击刷新后查看你要的表格是否存在。

8、若不存在,请重新导入,屡次不成功请索要源文件。

三、sql2008怎么保存数据库?

在SQL Server中,保存已经建立的数据库包括两个方面:

1. 保存数据库文件:创建一个数据库时,系统会为该数据库分配一组数据和日志文件,并默认将它们保存在SQL Server安装目录下的数据文件夹中。如果您想要备份数据库,可以直接备份数据和日志文件。具体操作步骤如下:

   - 打开SQL Server Management Studio,在“对象资源管理器”中,选择您想要备份的数据库。

   - 右键单击该数据库,在弹出菜单中选择“任务” -> “备份”。

   - 在“备份数据库”对话框中,设置备份类型、位置等参数,点击“确定”按钮即可开始备份。

2. 保存数据库定义:除了备份数据文件之外,还需要保存数据库的定义,以便在需要的时候可以重新创建该数据库。您可以使用SQL Server Management Studio导出数据库的DDL语句,以便将数据库定义保存为文本文件。具体操作步骤如下:

   - 在“对象资源管理器”中,右键单击数据库,选择“任务” -> “生成脚本”。

   - 在“生成脚本向导”中,选择要导出的对象(如表、视图、存储过程等),并设置其他选项(如脚本文件的位置和格式等)。

   - 单击“完成”按钮,系统会将数据库定义导出为DDL脚本。

希望以上介绍对您有所帮助。

四、c++怎么保存数据?

C++ 保存数据的的方法

方法一:freopen

说到保存数据,我们最熟悉的肯定就是freopen了,我们先来看看它的函数原型:

FILE *__cdecl freopen(

const char * __restrict__ _Filename,

const char * __restrict__ _Mode,

FILE * __restrict__ _File

)

_Filename:是文件名,用于存储输入输出的自定义文件名。

_Mode指文件打开的模式(如r-只读, w-只写等)。

_File:指一个文件,通常使用标准流文件。

方法二:ifstream和ofstream

那么除了freopen,还有没有别的方法了呢?

答案是必然的,我们就继续来学习ifstream和ofstream。为了使用他们,我们需要在开头添加一个头文件。

c++将文件保存至txt文件的方法

MATLAB1、dlmwrite('datainput.txt',x,'d');注:datainput.txt为保存的文件名称,x为保存的数据,d为数据间隔符。2、f=fopen('data.txt','wt'); fprintf(f,'%d\n',x); fclose(f);注:'wt'表示该文件的读写属性。

五、C++如何保存数据?

C++中有多种数据类型,可以使用不同的方法来保存它们。以下是一些常见的方法:

基本数据类型(如int、float等)可以直接存储在变量中。

字符串可以使用字符数组或字符串类来保存。

数组可以使用数组变量来保存,也可以使用动态内存分配来创建数组。

结构体和类可以使用变量或动态内存分配来创建对象并保存数据。

文件可以使用文件流来打开、读取和写入数据。

六、C语言如何保存数据?

在C语言中,可以使用不同的方法来保存数据。最常见的方法是使用变量来存储数据,变量可以是不同的数据类型,如整数、字符、浮点数等。

可以使用赋值语句将数据存储到变量中,并通过变量名来访问和操作数据。

此外,还可以使用数组来保存一组相关的数据,数组可以一次性分配一定数量的内存空间,并使用索引来访问和操作数组中的元素。

还可以使用指针来保存数据的地址,通过指针可以直接访问和修改存储在其他变量或数组中的数据。

另外,还可以使用文件来保存大量的数据,通过使用C语言提供的文件操作函数,可以将数据写入文件或从文件中读取数据。总而言之,C语言提供了多种灵活的方法来保存数据,开发者可以根据不同的需求选择合适的方法。

七、C#SQL随机抽取数据加入List?

这个没必要用一条sql语句来实现,可以采用变通的办法,你在C#程序中定义一个list,每次从数据库中随机抽取一条数据后将这条数据的id放入list中,下次随机抽取数据后去判断这条数据的id是否在list中,如果在则说明重复了,丢弃这条数据重新再取,这可能会有一定的效率损失,但是随机数重复的可能性本来就很小,这点效率损失没什么大不了的。

八、sql数据库怎么快速保存到电脑?

1. 使用备份和还原功能可以快速将SQL数据库保存到电脑上。2. 因为备份和还原功能可以将整个数据库备份到一个文件中,然后在需要的时候可以通过还原功能将备份文件恢复到数据库中,这样可以快速地将数据库保存到电脑上。3. 此外,还可以使用SQL Server Management Studio中的导出功能将数据库中的数据导出到文件中,然后再将文件保存到电脑上。这种方法可以选择导出的数据类型和格式,更加灵活。

九、sql server数据库没做完怎么保存

你好,你可以使用以下几种方法来保存未完成的 SQL Server 数据库:

1. 保存 SQL 脚本:将未完成的 SQL 脚本保存到本地计算机或网络驱动器上,以便稍后继续编辑和执行。

2. 保存 SQL Server Management Studio 项目:如果你使用 SQL Server Management Studio 编辑数据库,可以将项目保存到本地计算机或网络驱动器上,以便稍后继续编辑和执行。

3. 导出数据库:将未完成的数据库导出为备份文件,以便稍后可以还原和继续编辑。

4. 保存 Transact-SQL 脚本:使用 SQL Server Management Studio 或其他 SQL 编辑器编写 Transact-SQL 脚本,并将其保存到本地计算机或网络驱动器上以供稍后继续编辑和执行。

无论你选择哪种方法,都应该定期备份数据库和脚本以防止数据丢失。

十、C#连接SQL数据库的代码?

SqlConnectioncon=newSqlConnection("连接数据库字符串")

;stringsql=string.Format("select*from表名where宿舍号列='{0}'and日期列='{1}'",宿舍号,日期)

;SqlDataAdaptersda=newSqlDataAdapter(sql,con)

;DataSetds=newDataSet()

;sda.Fill(ds)

;con.Close()

;DataGridView控件名.DataSource=ds.Tables[0];

为您推荐

返回顶部