根据数据库中的记录,动态生成文本框,将记录赋值到框里。然后取出存入另外表???????????

uyou 2005-08-07 10:58:00
If Not Page.IsPostBack Then
sql = "select * from sz_lswp order by t3"
objcmd = New SqlCommand(sql, conn)
objdr = objcmd.ExecuteReader
i = 1
While objdr.Read
Response.Write("<INPUT id='wp'" & i & " type='text' name='wp'" & i & " runat=server value=" & Trim(objdr.Item(1)) & "><br>")
i = i + 1
End While

objdr.Close()


End If


可以在页面上看见生成的框,可是怎么读取并存入表,(查了一个晚上,没结果。现在提问)
...全文
183 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyfarwolf 2005-08-11
  • 打赏
  • 举报
回复

还有一个方法,这个肯定行得通的.
在页面上加一个不可见元素,比如<input type="hidden" id="mytemp" runat="server" NAME="mytemp"/>
也可以加一个<span style="display:none"><asp:textbox id="Textbox1" runat="server" /></span>

假设提交按钮为<asp:button id="Button1" text="提交" runat="server" Onclick="mybutton_Click"/> 以后一个为例:
在Page_Load()中加入
mybutton.Attribute.Add("onclick","mmm()");

再加入一段<javascript>
<script language="javascript">
function mmm()
{

for(var i=0;i<document.forms[0].length;i++)
{

if(document.forms[0].elements[i].id.match(/wp/)!=null)
document.all.mytemp.value+=document.forms[0].elements[i].id+"="+document.forms[0].elements[i].value+",";
}
}
</script>

在mybutton_Click(object sender,EverntArgse)
里用与此正则表达式处理mytemp.Text数据存入数据库中.

我前面留言的语句要稍改一下:
foreach(object a in Request.Form)
Response.Write(a.Id);
改为:
foreach(object a in Request.Form)
Response.Write(a.ToString()+"="+Request.Form[a.ToString()].ToString() );
skyfarwolf 2005-08-11
  • 打赏
  • 举报
回复
VbScript里有这样的语句啊

For Each name in Request.Form
response.write("<p>"&name&":")
response.write(Request.Form(name))
next

.NET里有
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vblr7/html/vastmForEach.htm

Dim Found As Boolean = False
Dim MyCollection As New Collection
For Each MyObject As Object In MyCollection ' Iterate through elements.
If CStr(MyObject.Text) = "Hello" Then ' If Text equals "Hello"
Found = True ' Set Found to True.
Exit For ' Exit loop.
End If
Next

uyou 2005-08-08
  • 打赏
  • 举报
回复
to hchxxzx(NET?摸到一点门槛) (
request.form("wp" & i)你试过吗?
我试过好像不行。
hchxxzx 2005-08-08
  • 打赏
  • 举报
回复
//page_load()
sql = "select * from sz_lswp order by t3"
objcmd = New SqlCommand(sql, conn)
objdr = objcmd.ExecuteReader
i = 1
While objdr.Read
Response.Write("<INPUT id='wp'" & i & " type='text' name='wp'" & i & " runat=server value=" & Trim(objdr.Item(1)) & "><br>")
i = i + 1
End While

objdr.Close()


//取值
sql = "select * from sz_lswp order by t3"
objcmd = New SqlCommand(sql, conn)
objdr = objcmd.ExecuteReader
sql = "update table(xx,xx) values("
i = 1
While objdr.Read
'注意,最后一个值,不能加逗号,自己处理一下
sql += "'" & request.form("wp" & i) & "',"
i = i + 1
End While
sql += ")"
zeusvenus 2005-08-08
  • 打赏
  • 举报
回复
读取可以写成
cmd.Connection.Open();
SqlDataReader dr = cmd.ExecuteReader();
// process the resultset(s) here
cmd.Connection.Close();
之类的格式,但他是只读的,要写入另外的表需要用update、insert等命令然后用cmd.ExecuteNonQuery()之类的语句。

楼主可以参见:
http://www.microsoft.com/china/MSDN/library/data/dataAccess/COMmandsinADO.NET.mspx

uyou 2005-08-08
  • 打赏
  • 举报
回复
to skyfarwolf(Computer

asp.net 的怎么写?
foreach在vb里面没有说明?
uyou 2005-08-07
  • 打赏
  • 举报
回复
to navy_koo(平湖秋水)
怎么取数?
navy_koo 2005-08-07
  • 打赏
  • 举报
回复
动态生成的控件不能加
postback判断,每次page_load的时候都必须重新生成。
skyfarwolf 2005-08-07
  • 打赏
  • 举报
回复
直接访问html控件的值要用.Value,不能用.Text。
skyfarwolf 2005-08-07
  • 打赏
  • 举报
回复
有一个方法可以解决:
html控件可以从Request.Form中取得数据。
c$如下:
foreach(object a in Request.Form)
Response.Write(a.Id);

for(int i=0;i<Request.Form.Length;i++)
{
Response.Write(Request.Form[i].Text+Request.Form[i].Id);
}
供楼主参考
codeangel 2005-08-07
  • 打赏
  • 举报
回复
一样的啊,你生成的TextBox ID为wp1,wp3,wp3, ...
存的时候就
insert into table (filed1,filed2,...) values('"+wp1.Text+"','"+wp2.Text+"','"+wp3.Text+"')
uyou 2005-08-07
  • 打赏
  • 举报
回复
没人帮忙?

62,047

社区成员

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

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

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

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