首页 > 解决方案 > 尝试在表中插入从另一个表生成的随机图像

问题描述

该页面在存储所有图像的表中的表单上显示一些随机图像和与之关联的名称。我想将生成的随机图像存储在其他表中,以便以后使用。但是当我尝试插入在其他表中生成的随机图像时,它会引发错误:

System.Drawing.Bitmap

此外,我已经包含MultipleActiveResultSets=True了这样的查询,即使另一个查询已经被迭代。异常堆栈:-


   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)

   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)

   at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)

   at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)

   at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

代码如下:-

private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                String sql = "select top 1 name,pic from fruits order by NEWID()";

            if (conn.State != ConnectionState.Open)
                conn.Open();
            cmd = new SqlCommand(sql, conn);
            SqlDataReader reader = cmd.ExecuteReader();
            reader.Read();
            if (reader.HasRows)
            {
                textFruit.Text = reader[0].ToString();
                byte[] img = (byte[])(reader[1]);
                if (img == null)
                {
                    picFruit.Image = null;
                }
                else
                {
                    MemoryStream ms = new MemoryStream(img);
                    picFruit.Image = Image.FromStream(ms);
                    string sql_2 = "insert into solution values("+textFruit.Text + ","+picFruit.Image +")";
                    cmd = new SqlCommand(sql_2, conn);
                    cmd.ExecuteNonQuery();
                    MessageBox.Show("Inserted into Solutions");
                }
            }
            else
            {
                MessageBox.Show("No record exists");
            }
            conn.Close();
        }
        catch (Exception exc)
        {
            conn.Close();
            MessageBox.Show(exc.Message);
        }
    }

标签: c#sql-server

解决方案


推荐阅读