SQL INSERT查询....不插入varbinary(max)数据 [英] SQL INSERT query....not inserting varbinary(max) data
问题描述
我正在使用此代码插入一些信息.
但我在插入密码"时遇到问题
password collummn是varbinary(MAX)类型.
但是当我运行此代码并在数据库中看到结果时.每个条目都是正确的,但在密码列中却显示<二进制数据>"不播种二进制形式的密码.
SqlCommand smd;
私有 无效 saveInformation(字符串命令)
{
尝试
{
字符串 connectString = System.Configuration.ConfigurationManager.ConnectionStrings [" ].ToString();
sc = 新 SqlConnection(connectString);
smd = 新 SqlCommand(command,sc);
sc.Open();
smd.ExecuteNonQuery();
}
捕获(例外)
{
errormsg.Text = ex.Message;
}
}
受保护的 无效 bemember_Click(对象发件人,EventArgs e)
{
字符串 Name = name.Text;
字符串 Email = email.Text;
字符串 Passtxt = pass.Text;
字节 [] Pass = GetSHA1(Email,Passtxt);
字符串命令= " + Name + ',CAST('" + Pass + " + Email + " ;
saveInformation(command);
}
私有 静态 byte [] GetSHA1(字符串用户ID,字符串密码)
{
SHA1CryptoServiceProvider sha = 新 SHA1CryptoServiceProvider();
返回 sha.ComputeHash(System.Text.Encoding.ASCII.GetBytes(userID + password));
} pre>
为什么不能存储该过程的程序
1St创建一个商店程序,就像这样
此处传递coloum数据类型为表
中的varbinary(MAX)创建 过程 [dbo].[SP_Insert] ( @用户名 varchar ( 20 ), @密码 varchar ( 20 ), @ Pass varbinary (max)) 原为 开始 - 您在此处的插入查询 插入 插入 Table1(用户名,密码,Pass)值( @用户名, @密码, @ Pass ) 结束
///////////////在C#代码中,您可以编写这样的代码
byte [] Pass = GetSHA1(Email,Passtxt); 字符串 connectString = System.Configuration.ConfigurationManager.ConnectionStrings [" ].ToString(); SqlConnection con = 新 SqlConnection(connectString); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = " ; cmd.Connection = con; con.open(); cmd.Parameters.Add(" ,name.Text); cmd.Parameters.Add(" ,pass.Text); cmd.Parameters.Add(" ,Pass); 您的bute []变量Pass cmd.ExecuteReader(); con.close()
希望这对您有帮助.......................................
I am inserting some information using this code.
but i face problem in inserting "password"
password collummn is a varbinary(MAX) type.
but when I run this code and see the result in my database. every entries correct but in password collumn it is sowing that "< binary data >" not sowing password which is in Binary form.
SqlCommand smd;
private void saveInformation(string command)
{
try
{
string connectString = System.Configuration.ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ToString();
sc = new SqlConnection(connectString);
smd = new SqlCommand(command, sc);
sc.Open();
smd.ExecuteNonQuery();
}
catch (Exception ex)
{
errormsg.Text= ex.Message;
}
}
protected void bemember_Click(object sender, EventArgs e)
{
string Name = name.Text;
string Email = email.Text;
string Passtxt = pass.Text;
byte[] Pass = GetSHA1(Email, Passtxt);
string command = "Insert into userInfo (username,password,email) values('"+Name+"', CAST('"+Pass+"' AS varbinary(max)),'"+Email+"')";
saveInformation(command);
}
private static byte[] GetSHA1(string userID, string password)
{
SHA1CryptoServiceProvider sha = new SHA1CryptoServiceProvider();
return sha.ComputeHash(System.Text.Encoding.ASCII.GetBytes(userID + password));
}pre>
Why cant you store procedure for that
1St create a store Procedure like this
Here Pass coloum datatypeis varbinary(MAX) in table
create procedure [dbo].[SP_Insert] (@username varchar(20),@password varchar(20),@Pass varbinary(max)) as begin -- Your Insert Query here insert into Table1(username ,password ,Pass ) values (@username,@password,@Pass) end
/////////////// In C# code you can write code like this
byte[] Pass = GetSHA1(Email, Passtxt); string connectString = System.Configuration.ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ToString(); SqlConnection con=new SqlConnection(connectString ); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "SP_Insert"; cmd.Connection = con; con.open(); cmd.Parameters.Add("@username",name.Text ); cmd.Parameters.Add("@password",pass.Text ); cmd.Parameters.Add("@Pass",Pass );// your bute[] variable Pass cmd.ExecuteReader(); con.close()
Hope this may help you..........................................
这篇关于SQL INSERT查询....不插入varbinary(max)数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!