動的な配列コントロール4  次の文書

動的な配列コントロール1~5で完結します。

Private Sub 返信Return_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim ボタン As Button = CType(sender, Button)
Dim ボタン文字 As String
Dim ボタン番号 As Integer

ボタン文字 = Right(ボタン.Text, 3) 'ボタンのIDより予約番号を取得
ボタン番号 = Val(ボタン文字)

'If コメント登録.Visible = False Then
'ボタン番号 = ボタン番号 + 1 'コメントが追加されていると1つずれるため
'End If

ブログNO.Text = StrConv(ブログNO.Text, VbStrConv.Uppercase)

Dim cn As New SqlConnection(ConfigurationManager.ConnectionStrings("LocalSqlServer").ToString())
cn.Open()

'---KEYの取得------------------------------------
Dim ブログコメントKEY As String = "ブログコメント子"
Dim DataCnt As Integer = 0

Dim KEYGET As New SqlCommand("SELECT 値 FROM DB_TBL_KEY WHERE [KEY]=@pブログコメント1", cn)
Dim pブログコメント1 As SqlParameter = KEYGET.Parameters.Add("@pブログコメント1", Data.SqlDbType.NChar, 10)
pブログコメント1.Value = ブログコメントKEY
Dim drKEYGET As SqlDataReader = KEYGET.ExecuteReader()

Dim ブログコメントID As Integer = 0
While drKEYGET.Read()
ブログコメントID = drKEYGET("値") + 1
End While
drKEYGET.Close()

'---KEYの更新-------------------------------------
Dim KEYUPD As New SqlCommand("UPDATE DB_TBL_KEY SET 値=@pブログコメントID1 WHERE [KEY]=@pブログコメント2", cn)
Dim pブログコメントID1 As SqlParameter = KEYUPD.Parameters.Add("@pブログコメントID1", Data.SqlDbType.Int, 5)
pブログコメントID1.Value = ブログコメントID
Dim pブログコメント2 As SqlParameter = KEYUPD.Parameters.Add("@pブログコメント2", Data.SqlDbType.NChar, 10)
pブログコメント2.Value = ブログコメントKEY
Dim cnt As Integer = KEYUPD.ExecuteNonQuery()

Dim IDKEY As String = ""
If ブログコメントID >= 1 Then
IDKEY = "C0000" & ブログコメントID
End If
If ブログコメントID >= 10 Then
IDKEY = "C000" & ブログコメントID
End If
If ブログコメントID >= 100 Then
IDKEY = "C00" & ブログコメントID
End If
If ブログコメントID >= 1000 Then
IDKEY = "C0" & ブログコメントID
End If
If ブログコメントID >= 10000 Then
IDKEY = "C" & ブログコメントID
End If

'ブログコメンNO.Text = IDKEY

'内容の書き込み
Dim 登録日 As String
Dim 登録時間 As String

Dim w_month As String = Month(Today)
Dim w_day As String = Day(Today)
If w_month < 10 Then w_month = "0" & w_month
If w_day < 10 Then w_day = "0" & w_day
登録日 = Year(Today) & "/" & w_month & "/" & w_day

Dim w_Hour As String = Hour(Now)
Dim w_Minute As String = Minute(Now)
Dim w_Second As String = Second(Now)
If w_Hour < 10 Then w_Hour = "0" & w_Hour
If w_Minute < 10 Then w_Minute = "0" & w_Minute
If w_Second < 10 Then w_Second = "0" & w_Second
登録時間 = w_Hour & ":" & w_Minute & ":" & w_Second


Dim ブログコメントADD As New SqlCommand("INSERT INTO DB_TBL_コメント子 (ブログID,コメント親ID,コメント子ID,名前,コメント,PictureUrl,type,thum,datum,ホスト,アドレス,登録日,登録時間,パス,削除) VALUES(@pブログID,@pコメント親ID,@pコメント子ID,@p名前,@pコメント,@pPictureUrl,@ptype,@pthum,@pdatum,@pホスト,@pアドレス,@p登録日,@p登録時間,@pパス,@p削除)", cn)
Dim pブログID As SqlParameter = ブログコメントADD.Parameters.Add("@pブログID", Data.SqlDbType.Char, 6)
Dim pコメント親ID As SqlParameter = ブログコメントADD.Parameters.Add("@pコメント親ID", Data.SqlDbType.Char, 6)
Dim pコメント子ID As SqlParameter = ブログコメントADD.Parameters.Add("@pコメント子ID", Data.SqlDbType.Char, 6)
Dim p名前 As SqlParameter = ブログコメントADD.Parameters.Add("@p名前", Data.SqlDbType.NChar, 10)
Dim pコメント As SqlParameter = ブログコメントADD.Parameters.Add("@pコメント", Data.SqlDbType.NVarChar, 4000)
Dim pホスト As SqlParameter = ブログコメントADD.Parameters.Add("@pホスト", Data.SqlDbType.Char, 50)
Dim pアドレス As SqlParameter = ブログコメントADD.Parameters.Add("@pアドレス", Data.SqlDbType.Char, 50)
Dim p登録日 As SqlParameter = ブログコメントADD.Parameters.Add("@p登録日", Data.SqlDbType.Char, 10)
Dim p登録時間 As SqlParameter = ブログコメントADD.Parameters.Add("@p登録時間", Data.SqlDbType.Char, 8)
Dim pパス As SqlParameter = ブログコメントADD.Parameters.Add("@pパス", Data.SqlDbType.NChar, 8)
Dim p削除 As SqlParameter = ブログコメントADD.Parameters.Add("@p削除", Data.SqlDbType.Char, 1)
Dim WordArea As String = ""

pブログID.Value = Left(ブログNO.Text, 6)
pコメント親ID.Value = コメント親IDT(ボタン番号)
pコメント子ID.Value = IDKEY

WordArea = コメントお名前(ボタン番号).Text
p名前.Value = Left(WordArea, 10)
コメントお名前(ボタン番号).Text = ""

WordArea = コメント返信内容(ボタン番号).Text
pコメント.Value = Left(WordArea, 4000)
コメント返信内容(ボタン番号).Text = ""

pホスト.Value = Request.ServerVariables("REMOTE_HOST")
pアドレス.Value = Request.ServerVariables("REMOTE_ADDR")
p登録日.Value = 登録日
p登録時間.Value = 登録時間
pパス.Value = ""
p削除.Value = "0"

Dim pPictureUrl As SqlParameter = ブログコメントADD.Parameters.Add("@pPictureUrl", Data.SqlDbType.VarChar, 50)
pPictureUrl.Value = "gazoget3.aspx?ID=" & ブログNO.Text & "&KY=" & IDKEY

Dim type As SqlParameter = ブログコメントADD.Parameters.Add("@ptype", datum1.PostedFile.ContentType)

Dim aryData(datum1.PostedFile.ContentLength) As Byte
datum1.PostedFile.InputStream.Read(aryData, 0, datum1.PostedFile.ContentLength)
'ブログコメントADD.Parameters.Add("@pdatum", aryData)

Dim ファイル名 As String = ""
Dim ファイルタイプ As String = ""

ファイル名 = Path.GetFileName(datum1.PostedFile.FileName)
ファイルタイプ = datum1.PostedFile.ContentType


Dim st As IO.Stream
st = datum1.PostedFile.InputStream

'i=1:サムネイル 2:通常
For i = 1 To 2
If Len(ファイル名) > 1 Then
Dim bmpSrc As Drawing.Bitmap = New Drawing.Bitmap(st)

'元画像の縦横サイズを調べる
Dim 横 As Integer = bmpSrc.Width
Dim 縦 As Integer = bmpSrc.Height

'横を35pxにする比率
Dim 新横 As Integer = 35
If i = 1 Then
新横 = 35
Else
新横 = 490
End If
Dim 比率 As Double = 新横 / 横
Dim 新縦 As Integer = 縦 * 比率

'画像のサイズ変更
Dim dest As Drawing.Bitmap = New Drawing.Bitmap(bmpSrc, 新横, 新縦)

'画像を特定のフォルダに保存する時
'dest.Save("d:\temp\testtesttest.jpg", Drawing.Imaging.ImageFormat.Jpeg)

'メモリ空間に書き出し
Dim ms As New IO.MemoryStream()
dest.Save(ms, Drawing.Imaging.ImageFormat.Jpeg)

Dim aryDatathm(ms.Length) As Byte
'読み込み位置再設定
ms.Position = 0
'msからaryData1へデータを取り込む
ms.Read(aryDatathm, 0, ms.Length)

If i = 1 Then
ブログコメントADD.Parameters.Add("@pthum", aryDatathm)
Else
ブログコメントADD.Parameters.Add("@pdatum", aryDatathm)
End If
Else
Dim strPic As String = Server.MapPath("./") & "gazouget3.gif"
Dim bmpSrc As Drawing.Bitmap = New Drawing.Bitmap(strPic)

Dim dest As Drawing.Bitmap = New Drawing.Bitmap(bmpSrc, 50, 50)

'画像を特定のフォルダに保存する時
'dest.Save("d:\temp\testtesttest.jpg", Drawing.Imaging.ImageFormat.Jpeg)

'メモリ空間に書き出し
Dim ms As New IO.MemoryStream()
dest.Save(ms, Drawing.Imaging.ImageFormat.Jpeg)

Dim aryDatathm(ms.Length) As Byte
'読み込み位置再設定
ms.Position = 0
'msからaryData1へデータを取り込む
ms.Read(aryDatathm, 0, ms.Length)

If i = 1 Then
ブログコメントADD.Parameters.Add("@pthum", aryDatathm)
Else
ブログコメントADD.Parameters.Add("@pdatum", aryDatathm)
End If

End If
Next

Dim cnt_ As Integer = ブログコメントADD.ExecuteNonQuery()


'更新内容を再表示させる
WordArea = ""

Dim コメント親GET As New SqlCommand("SELECT * FROM DB_TBL_コメント親 WHERE コメントID=@pコメントID and 削除=@p削除2 ORDER BY 登録日 desc ,登録時間 desc", cn)
Dim pコメントID As SqlParameter = コメント親GET.Parameters.Add("@pコメントID", Data.SqlDbType.Char, 6)
Dim p削除2 As SqlParameter = コメント親GET.Parameters.Add("@p削除2", Data.SqlDbType.Char, 1)
pコメントID.Value = コメント親IDT(ボタン番号)
p削除2.Value = "0"
Dim drコメント親 As SqlDataReader = コメント親GET.ExecuteReader()
While drコメント親.Read()
Dim コメント子内容 As String = コメント子GET(drコメント親("コメントID"))
コメントlbl(i) = New Label
WordArea = "<img border=0 src=gazoget3.aspx?ID=" & drコメント親("コメントID") & ">"
WordArea = WordArea & " " & drコメント親("コメントID") & " " & drコメント親("登録日") & " " & drコメント親("名前") & " " & drコメント親("コメント")
WordArea = WordArea & "<br>" & コメント子内容
End While
コメントlbl(ボタン番号).Text = WordArea

drコメント親.Close()
cn.Close()

Page.SetFocus(コメントlbl(ボタン番号))
'返信登録結果.Text = ボタン番号 & " " & コメント親IDT(ボタン番号) & " " & IDKEY & " を更新しました" & "<br><br>"

'返信登録結果.Text = 返信登録結果.Text & "結果" & "<br>"
'For i = 0 To コメント親cnt
'返信登録結果.Text = 返信登録結果.Text & i & " " & コメント親IDT(i) & "<br>"
'Next i

End Sub


 
ROWの再作成



← 左の文字をここへ入力後 登録ボタンをクリックしてください

(サイト管理者承認後掲載されます)