我是C#编程的新人 目前我尝试将文本文件保存并加载到sql server。我在youtube上观看并搜索了一些视频和文档。他们将图像文件存储到sql。我尝试将文本文件保存到服务器(二进制数据)。现在我坚持如何加载或转换它:
当我保存它时,我使用了memorystream:
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;
答案 0 :(得分: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"]);