各位好!我用C#编写windows应用程序,有问题如下:1、我要插入一条记录到数据库,(有姓名、年龄、照片等信息),当pictureBox的图片为空,表里的照片这列,我应该输入什么值;2、我要查询刚才照片列的值为空的纪录,结果应该在pictureBox上没有图片,这照片列的值我该怎么取得。
请帮我一下!

解决方案 »

  1.   

    你直接插入 null就可以了!
      

  2.   

    if(this.pictureBox1.Image==null)
    oleDbCommand1.Parameters["pic"].Value = null;
    else
    oleDbCommand1.Parameters["pic"].Value = pictureBox1.Image;
      

  3.   

    1.System.DBNull.Value;
    2.保持默认.或者自定义一幅图片(表示无照片).
      

  4.   

    查询按钮代码如下:
    try
    {
             byte[] ima_bytes=null;

    ConnectObject.OpenConnection();
    string s="select TName,Photo from Tnbswmbb where TID='"+textBox6.Text.Trim()+"'";
    SqlCommand cmd=new SqlCommand(s,ConnectObject.conn);
    SqlDataReader rd=cmd.ExecuteReader();
    if(rd.Read())
    {
       textBox5.Text=(string)rd.GetValue(0);
       ima_bytes=(byte[])rd.GetValue(1);

    } if(ima_bytes!=null)
    {

    //Read data
    MemoryStream stream=new MemoryStream(ima_bytes,true);
    stream.Read(ima_bytes,0,ima_bytes.Length); // Create a bitmap from the stream
    Bitmap btmp = new Bitmap(stream); // Close the stream
    stream.Close(); pictureBox1.Image=(Image)btmp;

    }
    else
    {    pictureBox1.Image=null;

             }


             ConnectObject.CloseConnection();
    }
    catch(Exception  ex2)
    {
    MessageBox.Show(ex2.Message);
    if (ex2.InnerException != null)
    MessageBox.Show(ex2.InnerException.Message);
    }
    finally
    {
    ConnectObject.CloseConnection();
    }
    当要查询刚才照片列的值为空的纪录(结果应该在pictureBox上没有图片),
    出现异常:使用了无效参数。该怎么改啊
      

  5.   

    change 
    ima_bytes=(byte[])rd.GetValue(1);with
    if( rd.GetValue(1) != DBNull.Value )
       ima_bytes=(byte[])rd.GetValue(1);
      

  6.   

    愚翁你好!
    还是出现异常:使用了无效参数。是不是跟当初pictureBox没有图片时插入那列的值不正确,没有图片应该插入什么值呢?
    插入的部分代码如下:
    if(pictureBox1.Image!=null)
    {
    string SQL1="INSERT INTO Tnbswmbb(Tcode,TName,TID,Photo) VALUES('"+num+"','"+textBox5.Text.Trim()+"','"+textBox6.Text.Trim()+"',@Photo)";
    sqlCommand1=new SqlCommand(SQL1,ConnectObject.conn);
    sqlCommand1.Parameters.Add( "@Photo", buffer);
    //sqlCommand1.Parameters["@Photo"].Value=buffer;
    }
    else
    {
    byte[] buffer1=new byte[0];string SQL2="INSERT INTO Tnbswmbb(Tcode,TName,TID,Photo) VALUES('"+num+"','"+textBox5.Text.Trim()+"','"+textBox6.Text.Trim()+"',@Photo)";
    sqlCommand1=new SqlCommand(SQL2,ConnectObject.conn);
    sqlCommand1.Parameters.Add( "@Photo", buffer1);
    }