[英]Problem with query string and extract values
I can't extract the values through a query and insert them into textbox
es 我无法通过查询提取值并将它们插入到
textbox
Where am I going wrong? 我哪里错了?
Request.QueryString.Get("ID_Persona");
string query = "SELECT ID,Nome,Cognome,Email,CodiceFiscale FROM Persona WHERE ID = @id";
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString))
{
SqlCommand cmd = new SqlCommand(query, con);
cmd.Parameters.AddWithValue("@ID","");
cmd.Parameters.AddWithValue("@Nome", TextBox1.Text);
cmd.Parameters.AddWithValue("@Cognome", TextBox15.Text);
cmd.Parameters.AddWithValue("@Email", TextBox20.Text);
cmd.Parameters.AddWithValue("@CodiceFiscale", TextBox22.Text);
con.Open();
cmd.ExecuteNonQuery();
}
You need to use ExecuteReader
to read values, something like this: 您需要使用
ExecuteReader
来读取值,如下所示:
var connectionString = ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString;
string query = "SELECT ID,Nome,Cognome,Email,CodiceFiscale FROM Persona WHERE ID = @id";
using (SqlConnection con = new SqlConnection(connectionString))
{
using (var cmd = new SqlCommand(query, con))
{
cmd.Parameters.AddWithValue("@ID", Request.QueryString.Get("ID_Persona"));
con.Open();
using (var rdr = cmd.ExecuteReader())
{
if (rdr.Read())
{
//IDTextBox? = rdr["Id"].ToString(),
TextBox1.Text = rdr["Nome"].ToString(),
TextBox15.Text = rdr["Cognome"].ToString(),
TextBox20.Text= rdr["Email"].ToString(),
TextBox22.Text= rdr["CodiceFiscale"].ToString(),
}
}
}
}
You should use a ExecuteReader()
instead of ExecuteNonQuery()
since ExecuteNonQuery
is meant for DML operations. 您应该使用
ExecuteReader()
而不是ExecuteNonQuery()
因为ExecuteNonQuery
用于DML操作。 Again, you need only the ID value to be passed then why you are passing unnecessary parameters to your query. 同样,您只需要传递ID值,然后将不必要的参数传递给查询。 Remove them all.
全部删除它们。 An example below
以下是一个例子
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine(String.Format("{0}", reader["Email"]));
}
I can see several issues: 我可以看到几个问题:
ExecuteReader()
instead of ExecuteNonQuery()
ExecuteReader()
而不是ExecuteNonQuery()
1
parameter - @ID
; 1
参数 - @ID
; I doubt if it should have an empty value. IDisposable
into using
IDisposable
包装成using
Code: 码:
string query =
@"SELECT ID,
Nome,
Cognome,
Email,
CodiceFiscale
FROM Persona
WHERE ID = @id";
using (SqlConnection con = new SqlConnection(...))
{
con.Open();
using SqlCommand cmd = new SqlCommand(query, con)
{
// I doubt if you want empty Id here.
// I've assumed you want to pass ID_Persona
cmd.Parameters.AddWithValue("@ID", Request.QueryString.Get("ID_Persona"));
using (var reader = cmd.ExecuteReader())
{
if (reader.Read())
{
TextBox1.Text = Convert.ToString(reader["Nome"]);
TextBox15.Text = Convert.ToString(reader["Cognome"]);
TextBox20.Text = Convert.ToString(reader["Email"]);
TextBox22.Text = Convert.ToString(reader["CodiceFiscale"]);
}
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.