2015-04-23 1 views
-3

Я хочу вставить pic в БД с процедурой и 3-уровневой ошибкой приклада в UI-уровне! У меня в моем проекте есть процедура, уровень доступа к данным и уровень бизнес-логики ... в коде Btn_Insert, значения ввода отправляются в params ... затем отправьте в SP!Вставить изображение (байт) в DB с 3-уровневым

это процедура Магазин:

ALTER PROCEDURE [dbo].[Agent_Insert] 
    @Agent NVARCHAR(MAX), 
    @Mob NVARCHAR(MAX), 
    @Pic IMAGE, 
    @Toz NVARCHAR(MAX) 
    AS 
    BEGIN 
    INSERT INTO Agent(Agent, Mob, Pic, Toz) 
    VALUES (@Agent, @Mob, @Pic, @Toz) 
    END 

этот DAL Код:

public int Agent_Insert(string Agent, string Mob, byte Pic, string Toz) 
    { 
     var returnValue = 0; 
     using (SqlConnection conn = new SqlConnection(connStr)) 
     { 
      using (SqlCommand dCmd = new SqlCommand("Agent_Insert", conn)) 
      { 
       dCmd.CommandType = CommandType.StoredProcedure; 
       SqlParameter[] prms = new SqlParameter[4]; 
       prms[0] = new SqlParameter("@Agent", SqlDbType.NVarChar); 
       prms[0].Value = Agent; 
       prms[1] = new SqlParameter("@Mob", SqlDbType.NVarChar); 
       prms[1].Value = Mob; 
       prms[2] = new SqlParameter("@Pic", SqlDbType.Image); 
       prms[2].Value = Pic; 
       prms[3] = new SqlParameter("@Toz", SqlDbType.NVarChar); 
       prms[3].Value = Toz; 
       dCmd.Parameters.AddRange(prms); 
       conn.Open(); 
       returnValue = dCmd.ExecuteNonQuery(); 
       conn.Close(); 
      } 
     } 
     return returnValue; 
    } 

этот BLL Код:

public class Agent_Bll 
{ 
    public int Insert(string Agent, string Mob, byte Pic, string Toz) 
    { 
     return new Agent_Dal().Agent_Insert(Agent, Mob, Pic, Toz); 
    } 

    public int Update(int Id, string Agent, string Mob, byte Pic, string Toz) 
    { 
     return new Agent_Dal().Agent_Update(Id, Agent, Mob, Pic, Toz); 
    } 

    public int Delete(int Id) 
    { 
     return new Agent_Dal().Agent_Delete(Id); 
    } 

    public DataTable Select() 
    { 
     return new Agent_Dal().Agent_Select(); 
    } 
} 

и это мой код в виде:

public static byte[] ImageToByte(Image img) 
    { 
     ImageConverter converter = new ImageConverter(); 
     return (byte[])converter.ConvertTo(img, typeof(byte[])); 
    } 


    private void Btn_Insert_Click(object sender, EventArgs e) 
    { 
     var result = 0; 
     try 
     { 
      result = new Agent_Bll().Insert(Txt_Agent.Text.Trim(), Txt_Mob.Text.Trim(), pictureBox1.Image(ImageToByte), Txt_Toz.Text.Trim()); 
Ошибка 210

приклад в: (не байт)

pictureBox1.Image(ImageToByte) 
+2

'..., ImageToByte (pictureBox1.Image), ....' – Steve

+0

Попробуйте небольшой, воспроизводимый пример. Это, похоже, не имеет ничего общего с базой данных или 3-уровневым. Код в вашем обработчике кликов даже не будет компилироваться. –

+0

..., ImageToByte (pictureBox1.Image), .... Это ошибка –

ответ

0

поставил около байта в DAL и метод BLL ... []!

byte[]