将临时链接的项目数据发送到数据库 [英] Send temporary linked item data to database
问题描述
嗨.
我在这里有一个代码,它将在文本框中将临时数据存储在gridview中,当数据临时存储在gridview中时,它将被链接以在google中搜索单词.
现在我想将链接的值发送到数据库.
有想法吗?
我的aspx代码:
Hi.
I have a code here,where it will store temporary data in a gridview from textbox where when the data is stored temporarily in gridview,it will be linked to search the word in google.
Now i want to send the linked values to database.
Any ideas guys?
My aspx code:
<body>
<div>
<table >
<tr>
<td class="style1">
<asp:Label ID="Label1" runat="server" Text="Caller Info :"></asp:Label>
</td>
<td style="width: 100px">
<asp:TextBox ID="TxtName" runat="server" class="cls" onekeypress="" ToolTip="Press Enter key for new input"></asp:TextBox>
</td>
</tr>
</table>
<asp:Button ID="BtnAddToTable" runat="server" align="right" class="cls"
Text="Add" OnClick="BtnAddToTable_Click" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:TemplateField HeaderText="Caller Information">
<ItemTemplate>
<a onclick='document.getElementById("<%=iframe1.ClientID%>").src = this.href; return false;' href='http://www.google.com/#q=<%#DataBinder.Eval(Container.DataItem,"name")%>'>
<%#DataBinder.Eval(Container.DataItem,"name")%></a>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:Button ID="BtnDelete" runat="server" Text="Clear" OnClick="BtnDelete_Click" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<iframe runat="server" id="iframe1" src="" class="cls"
style="z-index: 105; left: 225px; position: absolute; top: 109px; width: 875px; height: 455px;" frameborder="1" title="Google Search Display" ></iframe>
</div>
<asp:Button ID="BtnSendToDatabase" runat="server" class="cls" Text="//Sent to database" OnClick="BtnSendToDatabase_Click" />
</body>
我的CS代码:
My cs code:
static DataTable dt;
protected void Page_Load(object sender, EventArgs e)
{
{
if (!Page.IsPostBack)
{
//Instantiating the DataTable;
dt = new DataTable("Table1");
//Adding Columns
dt.Columns.Add("name", typeof(string));
}
}
}
protected void BtnAddToTable_Click(object sender, EventArgs e)
{
dt.Rows.Add(TxtName.Text);
BindData();
TxtName.Text = String.Empty;
}
public void BindData()
{
GridView1.DataSource = dt;
GridView1.DataBind();
}
protected void BtnDelete_Click(object sender, EventArgs e)
{
string sid = string.Empty;
string sname = string.Empty;
Button cb = sender as Button;
GridViewRow grow = (GridViewRow)cb.NamingContainer;
dt.Rows.RemoveAt(grow.RowIndex);
BindData();
}
推荐答案
如果您试图从数据表中获取输入值,则可以执行以下操作:
If you are trying to get the values of the inputs from the datatable, you can do this:
foreach (DataRow row in dt.Rows)
{
Console.WriteLine(row["name"].ToString());
}
首先,切勿构建像这样的命令:
First of all, NEVER build a command like this:
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "INSERT INTO Table1 (Company_Name) VALUES (''" + TxtName.Text + "'')";
这样做会使您暴露于sql注入漏洞.相反,请执行以下操作:
Doing this exposes you to sql injection vulnerabilities. Instead, do this:
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "INSERT INTO Table1 (Company_Name) VALUES (@compName)";
cmd.Parameters.AddWithValue("@compName", TxtName.Text);
关于在何处添加此代码,这全都取决于您的代码.理想情况下,您要分离数据访问,业务逻辑和表示层(n层体系结构).网络上有许多文章可以解释这种架构.以下是一些可以帮助您入门的文章:
- 链接1 [ ^ ]
- 链接2 [
In regards to where to add this code, that all depends on your code. Ideally, you want to seperate your data access, business logic and presentation layers (n-Tier architecture). There are many artciles on the web that explain this architecture. Below are some articles that can help you get started:
- Link 1[^]
- Link 2[^]
SqlCommand cmd = new SqlCommand(); cmd.CommandText = "INSERT INTO Table1 (Company_Name) VALUES (@compName)"; foreach (DataRow row in dt.Rows) { cmd.Parameter.AddWithValue("@compName", row["name"].ToString()); cmd.ExecuteNonQuery(); }
完成所有插入操作后,别忘了自己清理.处理完成的对象(cmd,连接).
After all your inserts are done, don''t forget to clean up after yourself. Dispose of the objects you are done with (cmd, conn..)
cmd.Dispose(); conn.Close(); conn.Dispose();
这篇关于将临时链接的项目数据发送到数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!