完蛋了,你的300分都给我:
看看我的代码:
'根据条件查询生成查询统计界面
Dim cnn As New OracleConnection(G_strCnn)
Dim strSQLSelect As String
If Me.CheckBoxAll.Checked Then
strSQLSelect = "Select FETABLENAME,FEFIELDNAME,FTITLE,FINPUTCOMTYPE,FVALUETYPE,FORDER FROM SYS_525 WHERE FETABLENAME='" & TableName & "' ORDER BY FORDER"
Else
strSQLSelect = "Select FETABLENAME,FEFIELDNAME,FTITLE,FINPUTCOMTYPE,FVALUETYPE,FORDER FROM SYS_525 WHERE FCANSEARCH=0 AND FETABLENAME='" & TableName & "' ORDER BY FORDER"
End If
Dim dap As New OracleDataAdapter(strSQLSelect, cnn)
Dim dt As New DataSet
Dim iSelect As Integer = 0
Me.DropDownListStat.Items.Clear()
Me.DropDownListStat.Items.Add("")
Me.DropDownListGroup.Items.Clear()
Me.DropDownListGroup.Items.Add("")
Try
cnn.Open()
dap.Fill(dt, "Tables") For Each ditem As DataRow In dt.Tables("tables").Rows
Dim TableQueryRow As New TableRow '添加逻辑符号 Dim myLogicCell As New TableCell
myLogicCell.Controls.Add(newLogic(ditem("FORDER")))
TableQueryRow.Cells.Add(myLogicCell)
'添加字段
Dim myFiledCell As New TableCell
Dim myFieldDropDown As DropDownList
myFieldDropDown = newfield(TableName, ditem("FORDER"))
myFieldDropDown.EnableViewState = False
myFieldDropDown.ClearSelection()
myFieldDropDown.SelectedIndex = iSelect
'Response.Write(iSelect.ToString & "<br>")
myFiledCell.Controls.Add(myFieldDropDown)
TableQueryRow.Cells.Add(myFiledCell)
myFieldDropDown.Dispose()
'添加比较符号
Dim myCompCell As New TableCell
Dim iValueType As Integer
If ditem.IsNull("FVALUETYPE") Then
iValueType = 1
Else
iValueType = ditem("FVALUETYPE")
End If
myCompCell.Controls.Add(newComp(iValueType, ditem("FORDER")))
TableQueryRow.Cells.Add(myCompCell)
'添加输入
Dim myTextCell As New TableCell
myTextCell.Controls.Add(newText(ditem("FORDER")))
TableQueryRow.Cells.Add(myTextCell) Me.Table.Rows.Add(TableQueryRow)
'初始化统计和分组
Dim MyStat As New ListItem(ditem("FTITLE"), ditem("FEFIELDNAME") & "_" & ditem("FVALUETYPE"))
Me.DropDownListStat.Items.Add(MyStat)
Me.DropDownListGroup.Items.Add(MyStat)
iSelect += 1
Next Catch ex As Exception
Response.Write(ex.ToString)
Finally cnn.Close()
cnn.Dispose()
End Try End Sub
看看我的代码:
'根据条件查询生成查询统计界面
Dim cnn As New OracleConnection(G_strCnn)
Dim strSQLSelect As String
If Me.CheckBoxAll.Checked Then
strSQLSelect = "Select FETABLENAME,FEFIELDNAME,FTITLE,FINPUTCOMTYPE,FVALUETYPE,FORDER FROM SYS_525 WHERE FETABLENAME='" & TableName & "' ORDER BY FORDER"
Else
strSQLSelect = "Select FETABLENAME,FEFIELDNAME,FTITLE,FINPUTCOMTYPE,FVALUETYPE,FORDER FROM SYS_525 WHERE FCANSEARCH=0 AND FETABLENAME='" & TableName & "' ORDER BY FORDER"
End If
Dim dap As New OracleDataAdapter(strSQLSelect, cnn)
Dim dt As New DataSet
Dim iSelect As Integer = 0
Me.DropDownListStat.Items.Clear()
Me.DropDownListStat.Items.Add("")
Me.DropDownListGroup.Items.Clear()
Me.DropDownListGroup.Items.Add("")
Try
cnn.Open()
dap.Fill(dt, "Tables") For Each ditem As DataRow In dt.Tables("tables").Rows
Dim TableQueryRow As New TableRow '添加逻辑符号 Dim myLogicCell As New TableCell
myLogicCell.Controls.Add(newLogic(ditem("FORDER")))
TableQueryRow.Cells.Add(myLogicCell)
'添加字段
Dim myFiledCell As New TableCell
Dim myFieldDropDown As DropDownList
myFieldDropDown = newfield(TableName, ditem("FORDER"))
myFieldDropDown.EnableViewState = False
myFieldDropDown.ClearSelection()
myFieldDropDown.SelectedIndex = iSelect
'Response.Write(iSelect.ToString & "<br>")
myFiledCell.Controls.Add(myFieldDropDown)
TableQueryRow.Cells.Add(myFiledCell)
myFieldDropDown.Dispose()
'添加比较符号
Dim myCompCell As New TableCell
Dim iValueType As Integer
If ditem.IsNull("FVALUETYPE") Then
iValueType = 1
Else
iValueType = ditem("FVALUETYPE")
End If
myCompCell.Controls.Add(newComp(iValueType, ditem("FORDER")))
TableQueryRow.Cells.Add(myCompCell)
'添加输入
Dim myTextCell As New TableCell
myTextCell.Controls.Add(newText(ditem("FORDER")))
TableQueryRow.Cells.Add(myTextCell) Me.Table.Rows.Add(TableQueryRow)
'初始化统计和分组
Dim MyStat As New ListItem(ditem("FTITLE"), ditem("FEFIELDNAME") & "_" & ditem("FVALUETYPE"))
Me.DropDownListStat.Items.Add(MyStat)
Me.DropDownListGroup.Items.Add(MyStat)
iSelect += 1
Next Catch ex As Exception
Response.Write(ex.ToString)
Finally cnn.Close()
cnn.Dispose()
End Try End Sub
解决方案 »
- Json格式转换深思
- 困饶了2天的关于AJAX的问题
- 求aspsmartupload上传代码, 环境:vs2005, asp.net+c#
- 有谁知道这个网页的分页规则是什么吗?怎样直接在地址栏输入第二页的网址?
- 如何跨站点用户登陆问题!
- 要往Session_OnEnd里面写代码,但是它在那儿呀?global里面只有一个SESSION——END呀!!
- 请看看这个SQL语句是否正确?
- 泣求:asp.net中怎么样播放mp3啊??
- 求教Replace问题
- 我需要OWC的COM组件,而又不想装EXCEL,怎样进行OWC的COM组件的注册??(在线)
- 怎么在弹出的模式web窗体返回多个值?
- 在DATAGRID中点击"编辑"按钮时文本框总是显示的太长??
Private Sub ImageButtonOK_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButtonOK.Click
Dim strLogic, strFileName, strComp, strValue, strValueType, strStatComp As String Dim iRequestItemCount As Integer
Dim coll As System.Collections.Specialized.NameValueCollection
coll = Request.Form
Dim iLoop As Int16
Dim strSql As String For iLoop = 0 To coll.Count - 1
Dim strs As String If coll.GetKey(iLoop).Substring(0, 5) = "Text_" Then '判断是不是文本筐
If coll.Item(iLoop).Trim <> "" Then '判断是不是空
'生成SQL语句
strLogic = coll.Item("Logic_" & coll.GetKey(iLoop).Substring(5))
strFileName = coll.Item("FieldName_" & coll.GetKey(iLoop).Substring(5))
strValueType = strFileName.Substring(strFileName.Length - 1, 1)
strFileName = strFileName.Substring(0, strFileName.Length - 2)
strComp = coll.Item("Comp_" & coll.GetKey(iLoop).Substring(5))
strValue = coll.Item("Text_" & coll.GetKey(iLoop).Substring(5))
Select Case strValueType
Case 1 '数字
'判断输入是否是数字
If IsNumeric(strValue) Then
If strLogic = "Like" Then
Me.Label1.Visible = True
Me.Label1.Text = "数字型数据不能选择LIKE比较符号。"
Exit For
Else
strSql += " " & strLogic
strSql += " " & strFileName
strSql += " " & strComp
strSql += " " & strValue
End If Else
Me.Label1.Visible = True
Me.Label1.Text = "请输入数字型字段输入数字型数据。"
Exit For
End If
Case 2 '字符
If (strComp = "=" Or strComp = "<>") Then
strSql += " " & strLogic
strSql += " " & strFileName
strSql += " " & strComp
strSql += " '" & strValue & "'"
ElseIf strComp = "Like" Then
strSql += " " & strLogic
strSql += " " & strFileName
strSql += " " & strComp
strSql += " '%" & strValue & "%'"
Else
Me.Label1.Visible = True
Me.Label1.Text = "字符型数据类型只能选择=、<>、LIKE比较符号"
Exit For
End If Case 3 '日期
If IsDate(strValue) Then
If strComp <> "Like" Then
strSql += " " & strLogic
strSql += " " & strFileName
strSql += " " & strComp
strSql += " to_data(" & strValue & ")"
Else
Me.Label1.Visible = True
Me.Label1.Text = "日期数据类型不能使用LIKE比较符号。"
Exit For
End If
Else
Me.Label1.Visible = True
Me.Label1.Text = "日期输入不正确,请输入YYYY-MM-DD方式。"
Exit For
End If
Case 4 '其他
End Select End If
End If
Next
'普通查询
'strSql = "Select * From " & TableName & " Where 'xiaoguizi'='xiaoguizi' " & strSql
'统计查询
Dim strSQLStat As String
strStatComp = Me.DropDownListStatmethod.SelectedValue
If strStat <> "" Then '统计
strValueType = strStat.Substring(strStat.Length - 1, 1)
strStat = strStat.Substring(0, strStat.Length - 2)
Select Case strValueType
Case "1"
Case "2", "3", "4"
If strStatComp <> "count" Then
Me.Label1.Text = "不是数字的只可以求个数!"
Exit Sub
End If
End Select
strSQLStat = "Select " & strStatComp & "(" & strStat & ") as 值 From " & TableName & " Where 'xiaoguizi'='xiaoguizi'" & strSql
If strGroup <> "" Then '分组 strGroup = strGroup.Substring(0, strGroup.Length - 2)
strSQLStat = "Select " & strStatComp & "(" & strStat & ") as 值 , " & strGroup & " From " & TableName & " Where 'xiaoguizi'='xiaoguizi'" & strSql & " Group by " & strGroup
End If
Else End If Dim strTarget As String = ""
If strStat <> "" Then
'统计查询
strTarget = " datastat.aspx?tablename=" & TableName & "&comp=" & strStatComp & "&sqlcon=" & Server.UrlEncode(strSQLStat)
Dim strurl As String = "<script>top.dialogArguments.location.href=""" & strTarget & """;</script>"
Response.Write(strurl) Else
'普通查询
strTarget = "datamanager.aspx?tablename=" & TableName & "&tabletype=" & TableName.Substring(0, 2) & "&sqlcon=" & Server.UrlEncode(strSql)
Dim strurl As String = "<script>top.dialogArguments.location.href=""" & strTarget & """;</script>"
Response.Write(strurl) End If
End Sub
'在此处放置初始化页的用户代码
strType = Request.Item("Type")
'strType = "zj"
TableName = Request.Item("tablename")
bStat = Request.Item("stat") strGroup = Me.DropDownListGroup.SelectedValue
strStat = Me.DropDownListStat.SelectedValue
'Call LoadControls("zj_zjzy_b_BFAM")
If Not Page.IsPostBack Then
'初始化下拉筐
Call LoadDropDownList(Me.DropDownListTableName, "Select FCTABLENAME,FETABLENAME FROM SYS_111 WHERE FETABLENAME LIKE '" & strType & "%' Order By Forder")
End If
Me.DropDownListTableName.SelectedValue = Me.DropDownListTableName.Items.FindByValue(TableName).Value
TableName = Me.DropDownListTableName.SelectedValue
Me.LabelTableName.Text = Me.DropDownListTableName.SelectedItem.Text
Call LoadControls(Me.DropDownListTableName.SelectedValue)
Me.PanelStat.Visible = bStat
'Me.Label1.Visible = True
End Sub
但是你的text中的内容就无法保存了
所以需要考虑 转弯的办法了
既然如此不如将次生成一个datatable 进行绑定