【问题标题】:DATA and IMAGE are populated in two rows. I want to bind them in a single rowDATA 和 IMAGE 填充在两行中。我想将它们绑定在一行中
【发布时间】:2012-12-25 03:19:00
【问题描述】:

我要第二次问这个了。我要把它说清楚,所以你可以帮助我:) 好的,让我们开始吧。

我有一个注册流程。我把这个过程分成两页。第一页仅用于“个人信息”。然后当我单击下一步按钮时,将出现下一页(postbackURL)此页面用于“上传照片”页面。他们工作正常!数据和图像显示在我的 gridview 控件上。但我的问题就在这里:如下图所示。数据分为两行!我希望它们只出现在单行中!我认为问题是第 1 页的数据库没有继续。这就是为什么当我在第 2 页上传图像时,数据库将创建另一条记录。嗯...有什么问题:) 我不知道该怎么做。请帮忙!

下表中显示的数据仅为虚拟数据。请不要认真对待。

这是 PersonalINFO.aspx 页面的 INSERT/UPDATE 代码:

<asp:AccessDataSource runat="server" ID="AccessDataSource1" DeleteCommand="DELETE FROM [PendingRecords] WHERE [ID] = ?" InsertCommand="INSERT INTO [PendingRecords] ([Username], [Password], [FirstName], [LastName], [MiddleName], [Address], [Gender], [ContactNumber], [PlateNumber], [Color], [Brand], [LiscensedNumber]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" UpdateCommand="UPDATE [PendingRecords] SET [Username] = ?, [Password] = ?, [FirstName] = ?, [LastName] = ?, [MiddleName] = ?, [Address] = ?, [Gender] = ?, [ContactNumber] = ?, [PlateNumber] = ?, [Color] = ?, [Brand] = ?, [LiscensedNumber] = ? WHERE [ID] = ?" DataFile="_private/records.mdb" SelectCommand="SELECT * FROM [PendingRecords]">
        <DeleteParameters>
            <asp:parameter Name="ID" Type="Int32" />
        </DeleteParameters>
        <UpdateParameters>
            <asp:parameter Name="Username" Type="String" />
            <asp:parameter Name="Password" Type="String" />
            <asp:parameter Name="FirstName" Type="String" />
            <asp:parameter Name="LastName" Type="String" />
            <asp:parameter Name="MiddleName" Type="String" />
            <asp:parameter Name="Address" Type="String" />
            <asp:parameter Name="Gender" Type="String" />
            <asp:parameter Name="ContactNumber" Type="String" />
            <asp:parameter Name="PlateNumber" Type="String" />
            <asp:parameter Name="Color" Type="String" />
            <asp:parameter Name="Brand" Type="String" />
            <asp:parameter Name="LiscensedNumber" Type="String" />
            <asp:parameter Name="ID" Type="Int32" />
        </UpdateParameters>
        <InsertParameters>
            <asp:parameter Name="Username" Type="String" />
            <asp:parameter Name="Password" Type="String" />
            <asp:parameter Name="FirstName" Type="String" />
            <asp:parameter Name="LastName" Type="String" />
            <asp:parameter Name="MiddleName" Type="String" />
            <asp:parameter Name="Address" Type="String" />
            <asp:parameter Name="Gender" Type="String" />
            <asp:parameter Name="ContactNumber" Type="String" />
            <asp:parameter Name="PlateNumber" Type="String" />
            <asp:parameter Name="Color" Type="String" />
            <asp:parameter Name="Brand" Type="String" />
            <asp:parameter Name="LiscensedNumber" Type="String" />
        </InsertParameters>
    </asp:AccessDataSource>

这是 UploadPhoto.aspx 页面中 btnUpload_Click 的代码:

<script runat="server" type="text/c#">
protected void btnUpload_Click(object sender, EventArgs e)


{
    {
   byte[] imageSize = new byte
                 [FileUpload1.PostedFile.ContentLength];
  HttpPostedFile uploadedImage = FileUpload1.PostedFile;
  uploadedImage.InputStream.Read
     (imageSize, 0, (int)FileUpload1.PostedFile.ContentLength);
 // Create SQL Connection 
  OleDbConnection con = new OleDbConnection();
  con.ConnectionString = ConfigurationManager.ConnectionStrings["recordsConnectionString12"].ConnectionString;
 // Create SQL Command 
 OleDbCommand cmd = new OleDbCommand();
 cmd.CommandText = "INSERT INTO PendingRecords([Image])" + " VALUES (@Image)";
 cmd.CommandType = CommandType.Text;
 cmd.Connection = con;

 OleDbParameter UploadedImage = new OleDbParameter
              ("@Image", OleDbType.VarBinary, imageSize.Length);

 UploadedImage.Value = imageSize;
 cmd.Parameters.Add(UploadedImage);
 con.Open();
 cmd.ExecuteNonQuery();  
 GridView1.DataSourceID = "";
 GridView1.DataSource = SqlDataSource1;
 GridView1.DataBind();
 con.Close();
 }
}
</script>

UploadPhoto.aspx 页面数据源代码:

<asp:SqlDataSource runat="server" id="SqlDataSource1" ProviderName="<%$ ConnectionStrings:recordsConnectionString12.ProviderName %>" ConnectionString="<%$ ConnectionStrings:recordsConnectionString12 %>" SelectCommand="SELECT * FROM [PendingRecords]" DeleteCommand="DELETE FROM [PendingRecords] WHERE [ID] = ?" InsertCommand="INSERT INTO [PendingRecords] ([Username], [Password], [FirstName], [LastName], [MiddleName], [Address], [Gender], [ContactNumber], [PlateNumber], [Color], [Brand], [LiscensedNumber]) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)" UpdateCommand="UPDATE [PendingRecords] SET [Username] = ?, [Password] = ?, [FirstName] = ?, [LastName] = ?, [MiddleName] = ?, [Address] = ?, [Gender] = ?, [ContactNumber] = ?, [PlateNumber] = ?, [Color] = ?, [Brand] = ?, [LiscensedNumber] = ? WHERE [ID] = ?">
    <DeleteParameters>
        <asp:parameter Name="ID" Type="Int32" />
    </DeleteParameters>
    <UpdateParameters>
        <asp:parameter Name="Username" Type="String" />
        <asp:parameter Name="Password" Type="String" />
        <asp:parameter Name="FirstName" Type="String" />
        <asp:parameter Name="LastName" Type="String" />
        <asp:parameter Name="MiddleName" Type="String" />
        <asp:parameter Name="Address" Type="String" />
        <asp:parameter Name="Gender" Type="String" />
        <asp:parameter Name="ContactNumber" Type="String" />
        <asp:parameter Name="PlateNumber" Type="String" />
        <asp:parameter Name="Color" Type="String" />
        <asp:parameter Name="Brand" Type="String" />
        <asp:parameter Name="LiscensedNumber" Type="String" />
        <asp:parameter Name="ID" Type="Int32" />
    </UpdateParameters>
    <InsertParameters>
        <asp:parameter Name="Username" Type="String" />
        <asp:parameter Name="Password" Type="String" />
        <asp:parameter Name="FirstName" Type="String" />
        <asp:parameter Name="LastName" Type="String" />
        <asp:parameter Name="MiddleName" Type="String" />
        <asp:parameter Name="Address" Type="String" />
        <asp:parameter Name="Gender" Type="String" />
        <asp:parameter Name="ContactNumber" Type="String" />
        <asp:parameter Name="PlateNumber" Type="String" />
        <asp:parameter Name="Color" Type="String" />
        <asp:parameter Name="Brand" Type="String" />
        <asp:parameter Name="LiscensedNumber" Type="String" />
    </InsertParameters>
</asp:SqlDataSource>

【问题讨论】:

    标签: asp.net database image photo records


    【解决方案1】:

    您需要将 ID 从个人信息页面传递到上传页面(可能通过查询字符串)。

    然后你的图像更新查询应该是和更新查询,见下文。

    cmd.CommandText = "UPDATE PendingRecords SET [Image] = @Image WHERE ID = @ID";
    

    您现在将根据需要传入 ID 参数。

    如果参数在查询字符串中(/UploadPhoto.aspx?id=60)

    OleDbParameter UploadedImage = new OleDbParameter
                  ("@Image", OleDbType.VarBinary, imageSize.Length);
    
     UploadedImage.Value = imageSize;
     cmd.Parameters.Add(UploadedImage);
    
    OleDbParameter IdParameter = new OleDbParameter("@ID", Request.QueryString["id"]);
        cmd.Parameters.Add(IdParameter);
    

    【讨论】:

    • ERROR :)) “异常详细信息:System.Data.OleDb.OleDbException:没有为一个或多个必需参数提供值。”在这一行“第 76 行:cmd.ExecuteNonQuery();”
    • 好的,我在我的查询字符串中添加了该代码。新错误“System.Data.OleDb.OleDbException:参数@Image 没有默认值。”
    • @PetersonPilares 我确定您未能添加图像参数。我更新了我的代码以显示图像参数和 id 参数。
    • 好吧再次“异常详细信息:System.Data.OleDb.OleDbException:参数@ID没有默认值。”我复制粘贴您的代码并放在我的查询字符串中。嗯...我的网站 url 没有返回到 /UploadPhoto?id=60 ...in 只进入 /UploadPhoto
    • @PetersonPilares 你是否使用 gmail/yahoo 聊天 .. 这样很容易提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    相关资源
    最近更新 更多