1

我是 C# 编程的新手。
目前我尝试将文本文件保存并加载到 sql server。我在 youtube 上观看并搜索了一些视频和文档。他们将图像文件存储到sql。我尝试并已经将文本文件保存到服务器(二进制数据)。现在我坚持如何加载或转换它:

当我保存它时,我使用了内存流:

MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(textreview.Text);
byte[] theBytes = Encoding.UTF8.GetBytes(textreview.Text);
ms.Position = 0;
ms.Read(theBytes, 0, theBytes.Length);

//insert value to server
SqlCommand cmdb = new SqlCommand("insert into Assignment(text) values (@text)", con);
cmdb.Parameters.AddWithValue("@textname", textPathLabel.Text);
cmdb.Parameters.AddWithValue("@text", theBytes);

现在我尝试加载它,但我卡在这里!

//load from sql
byte[] picarr = (byte[])dr["text"];
ms = new MemoryStream(picarr);
ms.Seek(0, SeekOrigin.Begin);
StreamReader reader = new StreamReader(ms);
string text = reader.ReadToEnd();
textreview.Text = text;
4

1 回答 1

4

这是一个关于如何将文本转换为字节然后再返回的示例:

var bytes = Encoding.UTF8.GetBytes("test");

这将为您提供一个如下所示的字节数组:

{ 116, 101, 115, 116 }

现在要再次获取文本,您可以Encoding.UTF8.GetString()像这样使用:

Encoding.UTF8.GetString(bytes);

这意味着您可以在保存值时简单地执行此操作:

cmdb.Parameters.AddWithValue("@text", Encoding.UTF8.GetBytes(textreview.Text));

然后在加载它时,您只需执行以下操作:

textreview.Text = Encoding.GetString((byte[])dr["text"]);

于 2012-08-08T07:57:30.803 回答