2

私はこれを2回目に尋ねるつもりです。私はあなたが私を助けることができるようにそれを明確にするつもりです:)さて始めましょう。

登録プロセスがあります。プロセスを2ページに分割しました。最初のページは「個人情報」専用です。次に、次のボタンをクリックすると、次のページが表示されます(postbackURL)このページは「写真のアップロード」ページ用です。彼らはうまくいきます!データと画像がグリッドビューコントロールに表示されます。しかし、私の問題はここにあります:あなたが下の図で見ることができるように。データは2行で入力されます!一列だけに出て欲しい!問題は、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>
4

1 に答える 1

2

IDを個人情報ページからアップロードページに渡す必要があります(おそらくクエリ文字列を介して)。

次に、画像の更新のクエリはUPDATEクエリである必要があります。以下を参照してください。

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);
于 2013-01-10T17:28:47.140 に答える