奇怪的传值问题C#

seulty 2007-03-19 08:15:21
我的页面里面有TextBox与上传文件的控件等
如<asp:textbox id="tb_name" runat="server" DESIGNTIMEDRAGDROP="996"></asp:textbox>

<INPUT id="acf_ipath" style="FONT-SIZE: 9pt; WIDTH: 240px; HEIGHT: 21px" type="file" maxLength="50"size="20" name="ttt" runat="server">

希望用户在修改相应的内容后,点击按钮对TextBox以及上传文档名等的值加入数据库以保存修改。现在出现的问题是:仅有上传文件的控件acf_ipath中的值可以得到,其他的值无法得到(通过如tb_name.text的方法,得到的是页面加载时的值,而非修改后,点击按钮准备保存时的值)。

请问大虾如何解决这一奇怪的问题??
...全文
552 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
seulty 2007-03-19
  • 打赏
  • 举报
回复
麻烦了你这么久,还是非常感谢的,我再自个儿看看,给分!
所有的都给了仁兄!
tian123xxx 2007-03-19
  • 打赏
  • 举报
回复
家里的机器没VS.不能帮你测试.
在那一步出了问题,断点一步步走走看
seulty 2007-03-19
  • 打赏
  • 举报
回复
数据库权限也给了 也不报错 郁闷啊
seulty 2007-03-19
  • 打赏
  • 举报
回复
str_up_detail
里面model_detail(pro_orgin)的值也是变得
tian123xxx 2007-03-19
  • 打赏
  • 举报
回复
打断点调试查看model_detail对象的值的变化情况
seulty 2007-03-19
  • 打赏
  • 举报
回复
Public Function Pro_detail_update(ByVal pro_orgin As gemsen_pro) As String
'Dim str_temp As String = ""
Try
Dim str_up_detail As String = ""
If pro_orgin.ipath = "" Then
str_up_detail = "update g_pro set name='" + pro_orgin.name + "' , chem_name='" + pro_orgin.chem_name + "',cas='" + pro_orgin.cas + "',chem_formula='" + pro_orgin.chem_formula + "' ,intro='" + pro_orgin.intro + "', main_use='" + pro_orgin.main_use + "', isnew=" + CStr(pro_orgin.isnew) + ", ishot=" + CStr(pro_orgin.ishot) + ", class='" + pro_orgin.g_class + "' where id=" + CStr(pro_orgin.ProId)
Else
str_up_detail = "update g_pro set name='" + pro_orgin.name + "' , chem_name='" + pro_orgin.chem_name + "',cas='" + pro_orgin.cas + "',chem_formula='" + pro_orgin.chem_formula + "' ,ipath='" + pro_orgin.ipath + "', intro='" + pro_orgin.intro + "', main_use='" + pro_orgin.main_use + "', isnew=" + CStr(pro_orgin.isnew) + ", ishot=" + CStr(pro_orgin.ishot) + ", class='" + pro_orgin.g_class + "' where id=" + CStr(pro_orgin.ProId)
End If
Dim conn As New OleDbConnection(OracleHelper.CONN_STRING)
conn.Close()
conn.Open()
Dim cmd_up_detail As New OleDbCommand(str_up_detail, conn)
cmd_up_detail.ExecuteNonQuery()
conn.Close()
Return "更新已经成功!"
Catch ex As Exception
Return ex.Message
Debug.Write(ex.Message)
End Try

End Function
tian123xxx 2007-03-19
  • 打赏
  • 举报
回复
上面的是个实体类肯定没问题,
这个类DaG_pro的Pro_detail_update方法发过来
seulty 2007-03-19
  • 打赏
  • 举报
回复
跟踪了一下,值还是对的 郁闷
seulty 2007-03-19
  • 打赏
  • 举报
回复
Public Class gemsen_pro
Private str_id As Integer
Private str_name As String

Private str_chem_name As String 'cname

Private str_cas As String

Private str_chem_formula As String 'ff
Private str_ipath As String
Private str_intro As String

Private str_weight As String 'Main Use

Private str_isnew As Boolean
Private str_ishot As Boolean
Private str_class As String

'Public Property main_use() As String
' Get
' Return str_main_use
' End Get
' Set(ByVal Value As String)
' str_main_use = Value
' End Set
'End Property

Public Property chem_formula() As String
Get
Return str_chem_formula
End Get
Set(ByVal Value As String)
str_chem_formula = Value
End Set
End Property

Public Property chem_name() As String
Get
Return str_chem_name
End Get
Set(ByVal Value As String)
str_chem_name = Value
End Set
End Property
Public Sub New()

End Sub
Public Sub New(ByVal id As Integer)
str_id = id
End Sub
Public ReadOnly Property ProId() As Integer
Get
Return str_id
End Get
End Property
Public Property name() As String
Get
Return str_name
End Get
Set(ByVal Value As String)
str_name = Value
End Set
End Property
Public Property intro() As String
Get
Return str_intro
End Get
Set(ByVal Value As String)
str_intro = Value
End Set
End Property

Public Property ipath() As String
Get
Return str_ipath
End Get
Set(ByVal Value As String)
str_ipath = Value
End Set
End Property

Public Property main_use() As String
Get
Return str_weight
End Get
Set(ByVal Value As String)
str_weight = Value
End Set
End Property

Public Property cas() As String
Get
Return str_cas
End Get
Set(ByVal Value As String)
str_cas = Value
End Set
End Property

Public Property isnew() As Boolean
Get
Return str_isnew
End Get
Set(ByVal Value As Boolean)
str_isnew = Value
End Set
End Property

Public Property ishot() As Boolean
Get
Return str_ishot
End Get
Set(ByVal Value As Boolean)
str_ishot = Value
End Set
End Property

Public Property g_class() As String
Get
Return str_class
End Get
Set(ByVal Value As String)
str_class = Value
End Set
End Property


End Class
tian123xxx 2007-03-19
  • 打赏
  • 举报
回复
如果这里的值对,就要怀疑Model.gemsen_pro这个类了
tian123xxx 2007-03-19
  • 打赏
  • 举报
回复
你在value_set方法里加个断点,
跟踪一下这里的值是什么
wusongwtl 2007-03-19
  • 打赏
  • 举报
回复
vb 看的就是郁闷
seulty 2007-03-19
  • 打赏
  • 举报
回复
Imports OraDal
Imports System.Data.OleDb
Imports System.io
Imports bll
Imports Model
Imports System
Imports System.Web
Imports System.Web.UI.WebControls
Public Class front_pro_edit
Inherits System.Web.UI.Page


#Region " Web 窗体设计器生成的代码 "

'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub
Protected WithEvents im_struct As System.Web.UI.WebControls.Image
Protected WithEvents ddl_class As System.Web.UI.WebControls.DropDownList
Protected WithEvents tb_name As System.Web.UI.WebControls.TextBox
Protected WithEvents tb_chem_name As System.Web.UI.WebControls.TextBox
Protected WithEvents tb_cas As System.Web.UI.WebControls.TextBox
Protected WithEvents tb_chem_formula As System.Web.UI.WebControls.TextBox
Protected WithEvents FCK_intro As FredCK.FCKeditorV2.FCKeditor
Protected WithEvents FCK_main_use As FredCK.FCKeditorV2.FCKeditor
'Protected model_detail As New Model.gemsen_pro
Protected WithEvents btn_submit As System.Web.UI.WebControls.Button
Protected WithEvents cb_new As System.Web.UI.WebControls.CheckBox
Protected WithEvents cb_hot As System.Web.UI.WebControls.CheckBox
Protected WithEvents lb_class As System.Web.UI.WebControls.Label
Protected WithEvents lb_main_use As System.Web.UI.WebControls.Label
Protected WithEvents lb_name As System.Web.UI.WebControls.Label
Protected WithEvents lb_chem_name As System.Web.UI.WebControls.Label
Protected WithEvents lb_cas As System.Web.UI.WebControls.Label
Protected WithEvents lb_chem_formula As System.Web.UI.WebControls.Label
Protected WithEvents lb_ipath As System.Web.UI.WebControls.Label
Protected WithEvents lb_intro As System.Web.UI.WebControls.Label
Protected WithEvents acf_ipath As System.Web.UI.HtmlControls.HtmlInputFile
Protected WithEvents cb_change_image As System.Web.UI.WebControls.CheckBox
Protected WithEvents RequiredFieldValidator1 As System.Web.UI.WebControls.RequiredFieldValidator
Protected WithEvents HyperLink1 As System.Web.UI.WebControls.HyperLink

'注意: 以下占位符声明是 Web 窗体设计器所必需的。
'不要删除或移动它。

Private designerPlaceholderDeclaration As System.Object
Private model_detail As New Model.gemsen_pro

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
'不要使用代码编辑器修改它。
InitializeComponent()
End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

If Not Page.IsPostBack Then
'Dim load_pro As New DaG_pro

'Repeater1.DataSource = load_pro.Pro_Search("", "1")
'Repeater1.DataBind()

If Not Request.QueryString("id") Is Nothing Then
value_get()
'Else
'lb_tag.Text = "Add"
End If
End If
'在此处放置初始化页的用户代码
End Sub



Private Sub value_get()
Dim load As New DaG_pro
model_detail = load.Pro_detail(Request.QueryString("id").Trim())
'lb_tag.Text = "Edit"
tb_name.Text = model_detail.name
tb_chem_name.Text = model_detail.chem_name
tb_cas.Text = model_detail.cas
tb_chem_formula.Text = model_detail.chem_formula
im_struct.ImageUrl = "..\gemsen_pro_db\" + model_detail.ipath
FCK_intro.Value = model_detail.intro
FCK_main_use.Value = model_detail.main_use
cb_new.Checked = model_detail.isnew
cb_hot.Checked = model_detail.ishot
Dim ddl As New front_pro_list
ddl.ddl_load(ddl_class)
'ddl_class.Items.FindByText(str_class).Selected=true;
ddl_class.Items.FindByValue(model_detail.g_class).Selected = True
End Sub


Private Sub value_set()
'Dim load As New DaG_pro
'load.Pro_detail(Request.QueryString("id").Trim()) = model_detail

model_detail.name = tb_name.Text
model_detail.chem_name = tb_chem_name.Text
model_detail.cas = tb_cas.Text
model_detail.chem_formula = tb_chem_formula.Text
'im_struct.ImageUrl = "..\gemsen_pro_db\" + model_detail.ipath
model_detail.intro = FCK_intro.Value
model_detail.main_use = FCK_main_use.Value
model_detail.isnew = cb_new.Checked
model_detail.ishot = cb_hot.Checked
model_detail.g_class = ddl_class.SelectedValue
If Not acf_ipath.PostedFile Is Nothing Then
model_detail.ipath = Generate_filename()
Else
model_detail.ipath = ""
End If
'Dim ddl As New front_pro_list
'ddl.ddl_load(ddl_class)

'ddl_class.Items.FindByValue(model_detail.g_class).Selected = True

End Sub

Public Function Generate_filename() As String
Return CStr(Now.Year & Now.Month & Now.Day & Now.Hour & Now.Minute & Now.Millisecond & model_detail.cas & Path.GetExtension(acf_ipath.PostedFile.FileName))
End Function



Private Sub btn_submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_submit.Click

If Not model_detail.name Is Nothing Then
value_set()
If Not acf_ipath.PostedFile Is Nothing Then
model_detail.ipath = Generate_filename()
Else
model_detail.ipath = ""
End If
'设置数据到产品对象
Dim up_sub As New DaG_pro
Dim str_MESSAGE As String = ""


If cb_change_image.Checked = True Then
If acf_ipath.PostedFile.ContentLength > 0 Then
acf_ipath.PostedFile.SaveAs(Server.MapPath("..\gemsen_pro_db\") + model_detail.ipath)
Else
'Response.Write("<script language ='javascript'>confirm('删除产品结构图?');</script>")
model_detail.ipath = "no.gif"
End If
Else
model_detail.ipath = ""
End If

str_MESSAGE = up_sub.Pro_detail_update(model_detail) '上传的同时删除原来的图片,再更新数据库.


value_get()



End If
End Sub
End Class

tian123xxx 2007-03-19
  • 打赏
  • 举报
回复
不把代码发上来,没法解决.
打断点看看整个程序的流程.会有帮助的.
seulty 2007-03-19
  • 打赏
  • 举报
回复
我将页面中的值保存到数据库,
发现只有上传文件那个控件acf_ipath的值可以顺利传输保存,其他控件的修改都无法保存。
还是老样子
tian123xxx 2007-03-19
  • 打赏
  • 举报
回复
有这事,
把你代码发上来,我帮你看看,
seulty 2007-03-19
  • 打赏
  • 举报
回复
谢谢回复 这个还是有的,无论去掉加上 结果都一样
tian123xxx 2007-03-19
  • 打赏
  • 举报
回复
在你页面的Page_load事件里,
是否加入了
if(!IsPostBack)
{
}

62,244

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧