需要有关插入代码的建议 [英] Need suggestion on the code for insertion
本文介绍了需要有关插入代码的建议的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
for (int i = 1; i < Array_of_Sheet_Data.GetLength(0); i++)
{
byte[] arr = null;
byte[] arr2 = null;
byte[] varchar_arr = null;
.
.
for (int k = 0; k < Array_of_Sheet_Data.GetLength(1); k++)
{
if (Array_of_Sheet_Data[0, k] == "char") //datat type checking
{
string s1 = Array_of_Sheet_Data[i, k];
string connectionString = "xxxxxxx";
SqlConnection _con = new SqlConnection(connectionString);
SqlCommand _cmd = new SqlCommand("ConvertCharToBinary", _con);
_cmd.CommandType = CommandType.StoredProcedure;
SqlParameter value = _cmd.Parameters.Add("@Value", SqlDbType.Char);
value.Value = s1;
SqlParameter return_value = _cmd.Parameters.Add("@returnValue", SqlDbType.Binary, 1000);
return_value.Direction = ParameterDirection.Output;
_con.Open();
_cmd.ExecuteNonQuery();
arr = (byte[])_cmd.Parameters["@returnValue"].Value;
_con.Close();
}
if (Array_of_Sheet_Data[0, k] == "varchar") //datat type checking
{
string s1 = Array_of_Sheet_Data[i, k];
string connectionString = "xxxxxxx";
SqlConnection _con = new SqlConnection(connectionString);
SqlCommand _cmd = new SqlCommand("ConvertVarCharToBinary", _con);
_cmd.CommandType = CommandType.StoredProcedure;
SqlParameter value = _cmd.Parameters.Add("@Value", SqlDbType.Char);
value.Value = s1;
SqlParameter return_value = _cmd.Parameters.Add("@returnValue", SqlDbType.Binary, 1000);
return_value.Direction = ParameterDirection.Output;
_con.Open();
_cmd.ExecuteNonQuery();
varchar_arr = (byte[])_cmd.Parameters["@returnValue"].Value;
_con.Close();
}
if (Array_of_Sheet_Data[0, k] == "tinyint")
{
dtype = Array_of_Sheet_Data[0, k].ToString();
int numVal = 0;
string s1 = Array_of_Sheet_Data[i, k];
numVal = byte.Parse(s1);
string connectionString = "xxxxxxx";
SqlConnection _con = new SqlConnection(connectionString);
SqlCommand _cmd = new SqlCommand("ConvertTinyIntToBinary", _con);
_cmd.CommandType = CommandType.StoredProcedure;
SqlParameter value = _cmd.Parameters.Add("@Value", SqlDbType.TinyInt);
value.Value = numVal;
SqlParameter return_value = _cmd.Parameters.Add("@returnValue", SqlDbType.Binary, 50);
return_value.Direction = ParameterDirection.Output;
_con.Open();
_cmd.ExecuteNonQuery();
tinyint_arr = (byte[])_cmd.Parameters["@returnValue"].Value;
_con.Close();
}
.
.
.
.
}
}
我使用storeprocedures将值转换为二进制并获得返回值
存储在字节数组中
基于计数,我创建了一个临时表,我需要一个将字节数组值插入到表中的过程
向我建议solution
am converting the values to binary using storeprocedures and getting return value
storing in byte array
based on the count i have created a temp table,i need a process to insert that byte arrays values into table
suggest me solution
推荐答案
添加存储过程以插入二进制类型字段.
Add a stored procedure for insert a binary type field.
CREATE PROCEDURE sp_InsertBinary
(@BinaryArray Binary)
AS
BEGIN
INSERT INTO TABLE_OF_BINARY_FIELD VALUES(@BinaryArray)
END
其次,确保要在DataLayer中发送的数据类型是Binary,如下所示:
Secondly, ensure that the Datatype that you are sending in your DataLayer are Binary, like this:
SqlParameter sqlParam = new SqlParameter();
sqlParam.DbType = System.Data.SqlDbType.Binary;
sqlParam.Value = yourBinaryArray;
不要忘记将参数添加到sqlcommand并执行它们.
问候:)
don''t forget to add your parameter to your sqlcommand and execute them.
Greets :)
这篇关于需要有关插入代码的建议的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文