我们可以不使用查询字符串这样做,请提供代码... [英] can we do this without using querystring,,,please provide me code...
本文介绍了我们可以不使用查询字符串这样做,请提供代码...的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们可以在不使用查询字符串的情况下执行此操作,请向我提供代码...
editpage.aspx.cs
使用系统;
使用 System.Collections.Generic;
使用 System.Linq;
使用 System.Web;
使用 System.Web.UI;
使用 System.Web.UI.WebControls;
使用 System.Data.SqlClient;
使用 System.Data;
使用 System.Configuration;
命名空间 WebApplication1
{
public partial class editpage:System.Web.UI.Page
{
SqlConnection conn = < span class =code-keyword> new SqlConnection( @ 数据源= SRAVI-PC \ SQLEXPRESS;初始目录= testdb;集成安全性=真);
受保护 void Page_Load( object 发件人,EventArgs E)
{
<跨度类= 代码关键字>如果跨度>(的IsPostBack)
{
BindDetails()!;
}
}
私有 void BindDetails()
{
lblid.Text = Request.QueryString [ Id];
// txtid.Text = Request.QueryString [Id];
txtfname.Text = Request.QueryString [ FirstName];
txtlname.Text = Request.QueryString [ LastName];
}
受保护 void btnsave_Click(对象跨度>发件人,EventArgs E)
{
<跨度类= 代码关键字> INT 跨度> ID1 = Convert.ToInt32(lblid.Text);
// int id = Convert.ToInt32(txtid.Text);
string fna = txtfname.Text;
string lna = txtlname.Text;
string cmd = update namestb set FirstName =' + fna + ',LastName =' + lna + '其中Id = + id1;
SqlCommand command = new SqlCommand(cmd,conn);
conn.Open();
command.ExecuteNonQuery();
conn.Close();
Response.Redirect( displaypage.aspx);
}
<跨度类= 代码关键字>保护跨度> <跨度类= 代码关键字>空隙跨度> btncancel_Click(<跨度类= code-keyword> object sender,EventArgs e)
{
Response.Redirect( displaypage.aspx跨度>);
}
}
}
display.aspx.cs
使用系统;
使用 System.Collections.Generic;
使用 System.Linq;
使用 System.Web;
使用 System.Web.UI;
使用 System.Web.UI.WebControls;
使用 System.Data;
使用 System.Data.SqlClient;
命名空间 WebApplication1
{
public partial class displaypage:System.Web.UI.Page
{
SqlConnection conn = < span class =code-keyword> new SqlConnection( @ 数据源= SRAVI-PC \ SQLEXPRESS;初始目录= testdb;集成安全性=真);
受保护 void Page_Load( object sender,EventArgs e)
{
getdata();
}
public void getdata()
{
string cmd = select * from namestb跨度>;
SqlDataAdapter da = new SqlDataAdapter(cmd,conn);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables [ 0 ];
GridView1.DataBind();
}
受保护 void 编辑( object sender,CommandEventArgs z)
{
if (z.CommandName == edit)
{
int id = Convert.ToInt32(z.CommandArgument);
SqlDataAdapter的DA = <跨度类= 代码关键字>新跨度> SqlDataAdapter的(<跨度类= 代码串> 跨度> <跨度类= 代码串>选择*来自namestb,其中Id = + id,conn);
DataSet ds = new DataSet();
da.Fill(ds, namestb);
DataTable dt = new DataTable();
dt = ds.Tables [ 0 ];
int Id = Convert.ToInt16(dt.Rows [ 0 ] [ Id]);
string FirstName = Convert.ToString(dt.Rows [ 0 ] [ FirstName]);
string LastName = Convert.ToString(dt.Rows [ 0 ] [ LastName]);
Response.Redirect( editpage.aspx?Id = + Id + & FirstName = + FirstName + < span class =code-string>& LastName = + LastName);
}
}
}
}
解决方案
是 - 通过Cookie或会话转移细节。
但请不要这样做!不要连接字符串以构建SQL命令。它让您对意外或故意的SQL注入攻击持开放态度,这可能会破坏您的整个数据库。请改用参数化查询。
can we do this without using querystring,,,please provide me code...
editpage.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
namespace WebApplication1
{
public partial class editpage : System.Web.UI.Page
{
SqlConnection conn = new SqlConnection(@"Data Source=SRAVI-PC\SQLEXPRESS;Initial Catalog=testdb;Integrated Security=True");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindDetails();
}
}
private void BindDetails()
{
lblid.Text = Request.QueryString["Id"];
// txtid.Text = Request.QueryString["Id"];
txtfname.Text = Request.QueryString["FirstName"];
txtlname.Text = Request.QueryString["LastName"];
}
protected void btnsave_Click(object sender, EventArgs e)
{
int id1 = Convert.ToInt32(lblid.Text);
// int id = Convert.ToInt32(txtid.Text);
string fna = txtfname.Text;
string lna = txtlname.Text;
string cmd = "update namestb set FirstName='" + fna + "',LastName='"+lna+"'where Id="+id1;
SqlCommand command = new SqlCommand(cmd, conn);
conn.Open();
command.ExecuteNonQuery();
conn.Close();
Response.Redirect("displaypage.aspx");
}
protected void btncancel_Click(object sender, EventArgs e)
{
Response.Redirect("displaypage.aspx");
}
}
}
display.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
namespace WebApplication1
{
public partial class displaypage : System.Web.UI.Page
{
SqlConnection conn = new SqlConnection(@"Data Source=SRAVI-PC\SQLEXPRESS;Initial Catalog=testdb;Integrated Security=True");
protected void Page_Load(object sender, EventArgs e)
{
getdata();
}
public void getdata()
{
string cmd = "select * from namestb";
SqlDataAdapter da = new SqlDataAdapter(cmd, conn);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
}
protected void edit(object sender,CommandEventArgs z)
{
if (z.CommandName == "edit")
{
int id = Convert.ToInt32(z.CommandArgument);
SqlDataAdapter da = new SqlDataAdapter("select * from namestb where Id=" + id, conn);
DataSet ds = new DataSet();
da.Fill(ds, "namestb");
DataTable dt = new DataTable();
dt = ds.Tables[0];
int Id = Convert.ToInt16(dt.Rows[0]["Id"]);
string FirstName = Convert.ToString(dt.Rows[0]["FirstName"]);
string LastName = Convert.ToString(dt.Rows[0]["LastName"]);
Response.Redirect("editpage.aspx?Id=" + Id + "&FirstName=" + FirstName + "&LastName=" + LastName);
}
}
}
}
解决方案
Yes - transfer the details via either Cookies or the Session instead.
But please, don't do it like that! Do not concatenate strings to build a SQL command. It leaves you wide open to accidental or deliberate SQL Injection attack which can destroy your entire database. Use Parametrized queries instead.
这篇关于我们可以不使用查询字符串这样做,请提供代码...的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文