【发布时间】:2015-05-20 13:56:29
【问题描述】:
最终目标是能够使用网络表单从数据库中选择一家公司及其所有详细信息,然后更新/创建新条目。所有这些都有效,除了 Logo
Logo 以 varbinary(MAX) 的形式存储在 SQL 数据库中,它已被拉入 C# 并转换为 byte[] 以便使用 asp 图像控制器显示它。
前端
<img src="" runat="server" id ="image" />
使用 SqlDataReader 从数据库中提取徽标
public TemplateData(SqlDataReader dr)
{
initialiseData();
if (dr.HasRows)
{
byte[] Logo = (byte[])dr["Logo"];
//Logo = dr["Logo"].ToString();
TemplateId = dr["TemplateId"].ToString();
Comment = dr["Comment"].ToString();
SchemeCode = dr["SchemeCode"].ToString();
Version = dr["Version"].ToString();
}
}
后面的代码
protected void ddSchemeCode_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddSchemeCode.SelectedIndex > 0)
{
// Existing Data to load from database
TemplateData temp = DataClass.ReturnData(ddSchemeCode.SelectedItem.Text);
if (temp != null)
{
txtVersion.Text = temp.Version;
txtComment.Text = temp.Comment;
txtSchemeCode.Text = temp.SchemeCode;
txtTemplateId.Text = temp.TemplateId;
image.Src = "data:image/jpeg;base64," + Convert.ToBase64String(temp.Logo);
}
}
The Error I receive is when a company is selected is "Value cannot be null. 参数名称:inArray"
我已经尝试了无数其他方法来做到这一点,但似乎都没有成功。 任何帮助深表感谢, 干杯!
【问题讨论】:
-
你能验证 dr["Logo"] 的值吗?
-
它是数据库中的一个列名,取自一个SqlCommand
string sqlInstructionCstmID = "SELECT TOP(1) LetterTemplateCustomisationId, TemplateId, Logo, SchemeCode, Version, Comment FROM LetterTemplateCustomisation WHERE SchemeCode ='" + schemeCode +"'"; -
至少,由于错误提到了一个名为
inArray的参数,您可能需要找到一段出现相同名称的代码,并通过 editing 您的问题来显示这些位(单行代码很少对问题有帮助,因为您不太可能将问题隔离到导致问题的单行 - 如果您有,您可能不需要提出问题) -
"inArray" 没有出现在我的代码中的任何位置。抱歉缺少上下文,已编辑。
-
在你的代码中仍然看不到它。
标签: c# sql asp.net sql-server