解決了,改變數據庫的圖像字段的數據類型爲VARBINARY(MAX)並使用限定SqlDbType.VarBinary插入圖像存儲過程到數據庫中,所以我沒有失去字節的過程中,之前我只是在圖像字段中保存變量類型[]字節。
表:
CREATE TABLE [dbo].[SoporteIndicador](
[Codigo] [int] IDENTITY(1,1) NOT NULL,
[CodigoIM] [varchar](50) NOT NULL,
[CodigoGI] [varchar](50) NOT NULL,
[Soporte] [varbinary](max) NOT NULL,
[NombreSoporte] [varchar](150) NOT NULL,
[UsuarioRegistro] [varchar](50) NOT NULL,
[FechRegistro] [datetime] NOT NULL
錯誤:
public static int RegistrarSoporteIndicador(SoporteIndicador soporteIndicador)
{
int Ingreso = 0;
using (SqlConnection conexion = Conexion.ObtenerConexion())
{
SqlCommand Ingresar = new SqlCommand(string.Format(
"Insert Into SoporteIndicador (CodigoIM,CodigoGI,Soporte,NombreSoporte,UsuarioRegistro,FechRegistro) values ('{0}', '{1}', '{2}', '{3}', '{4}', '{5}')",
soporteIndicador.CodigoIM,
soporteIndicador.CodigoGI,
soporteIndicador.Soporte, //Type []byte soporteIndicador.NombreSoporte,
soporteIndicador.UsuarioRegistro,
soporteIndicador.FechRegistro), conexion);
Ingreso = Ingresar.ExecuteNonQuery();
conexion.Close();
}
SqlConnection cerrarcon = Conexion.CerrarConexion();
return Ingreso;
}
解決:
public static int RegistrarSoporteIndicador(SoporteIndicador soporteIndicador)
{
int Ingreso = 0;
using (SqlConnection conexion = Conexion.ObtenerConexion())
{
using (SqlCommand cmd = new SqlCommand("PA_Guardar_Registro", conexion))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("CodigoIM", soporteIndicador.CodigoIM);
cmd.Parameters.AddWithValue("CodigoGI", soporteIndicador.CodigoGI);
SqlParameter imageParam = cmd.Parameters.Add("@Soporte", System.Data.SqlDbType.VarBinary);
imageParam.Value = soporteIndicador.Soporte;
cmd.Parameters.AddWithValue("NombreSoporte", soporteIndicador.NombreSoporte);
cmd.Parameters.AddWithValue("UsuarioRegistro", soporteIndicador.UsuarioRegistro);
cmd.Parameters.AddWithValue("FechRegistro", soporteIndicador.FechRegistro);
Ingreso = cmd.ExecuteNonQuery();
conexion.Close();
}
}
SqlConnection cerrarcon = Conexion.CerrarConexion();
return Ingreso;
}
'image'數據類型將在SQL的未來版本中刪除絲氨酸版本。避免在新的開發工作中使用這些數據類型,並計劃修改當前使用它們的應用程序。改爲使用'varbinary(max)'(並且它支持** 20億字節**(2 GB)的大小 - ** NOT **只有8000字節![請參閱此處](http://msdn.microsoft.com /en-us/library/ms187993.aspx) –