基于C#的ASP.NET如何将一个字符串写入sql server数据库中 binary(16)字段
基于C#的ASP.NET如何将一个字符串写入sqlserver数据库中binary(16)字段System.InvalidCastException:从System.St...
基于C#的ASP.NET如何将一个字符串写入sql server数据库中 binary(16)字段
System.InvalidCastException: 从 System.String 到 System.Byte[] 的转换无效。 展开
System.InvalidCastException: 从 System.String 到 System.Byte[] 的转换无效。 展开
3个回答
2008-02-26
展开全部
private void button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(strConnection);//strConnection为连接串自己写
byte[] binaryData = System.IO.File.ReadAllBytes("my.jpg");
//要存入的二进制数据,这里读出的是D:\\my.jpg图片的二进制数据
SqlCommand cmd = conn.CreateCommand();
//建立数据库连接
cmd.CommandText = "INSERT INTO Test (binaryData, SubTitle)"
+ " values ( @binaryData, @SubTitle)";
//要插入的值用占位符代替,其中@binaryData这样的就是占位符,就是这样写的,无论在什么语言中(好像是PLSQL里面就要这么写)
conn.Open();
cmd.Parameters.Add("@binaryData", SqlDbType.Binary, 100);
//设置占位符的数据类型SqlDbType类中包含了各种sqlsver的数据类型
//Add方法有多种重载,写法不唯一
cmd.Parameters.Add("@SubTitle", SqlDbType.NVarChar, 50);
cmd.Parameters["@binaryData"].value = binaryData;
cmd.Parameters["@SubTitle"].value=“字符串”
try
{
cmd.ExecuteNonQuery();//执行SQL语句
}
catch (Exception ex)
{
//输出异常
}
finally
{
conn.Close();
}
}
{
SqlConnection conn = new SqlConnection(strConnection);//strConnection为连接串自己写
byte[] binaryData = System.IO.File.ReadAllBytes("my.jpg");
//要存入的二进制数据,这里读出的是D:\\my.jpg图片的二进制数据
SqlCommand cmd = conn.CreateCommand();
//建立数据库连接
cmd.CommandText = "INSERT INTO Test (binaryData, SubTitle)"
+ " values ( @binaryData, @SubTitle)";
//要插入的值用占位符代替,其中@binaryData这样的就是占位符,就是这样写的,无论在什么语言中(好像是PLSQL里面就要这么写)
conn.Open();
cmd.Parameters.Add("@binaryData", SqlDbType.Binary, 100);
//设置占位符的数据类型SqlDbType类中包含了各种sqlsver的数据类型
//Add方法有多种重载,写法不唯一
cmd.Parameters.Add("@SubTitle", SqlDbType.NVarChar, 50);
cmd.Parameters["@binaryData"].value = binaryData;
cmd.Parameters["@SubTitle"].value=“字符串”
try
{
cmd.ExecuteNonQuery();//执行SQL语句
}
catch (Exception ex)
{
//输出异常
}
finally
{
conn.Close();
}
}
展开全部
你可以先把字符串转换成 Byte 类型的数组,然后就可以保存到数据库了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
转换为双字节byte[2],即只能一个字符,超长不行。
**********************************
转换方法:
byte[] b = BitConverter.GetBytes(str[0]);
**********************************
转换方法:
byte[] b = BitConverter.GetBytes(str[0]);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询