查询字符串数据绑定
本文关键字:数据绑定 字符串 查询 | 更新日期: 2023-09-27 18:22:18
当数据与我所拥有的查询字符串相同时,我正在尝试将数据绑定到标签。我一直在说一个错误。
必须声明标量变量"@YouthClubID"。
这是我的密码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data;
namespace WebApplication1
{
public partial class youthclubpage : System.Web.UI.Page
{
int YouthClubID;
protected void Page_Load(object sender, EventArgs e)
{
using (SqlConnection sqlConnection = new SqlConnection("server = sql7.hostinguk.net; uid = joanton7865org7272_phelim; pwd = Armo32nk; database = joanton7865org7272_youthpodcast;"))
{
sqlConnection.Open();
string strSQL = "Select youthclubname from youthclublist WHERE ([YouthClubID] = @YouthClubID)";
using (SqlCommand sqlCommand = new SqlCommand(strSQL, sqlConnection))
{
sqlCommand.Parameters.AddWithValue("@YouthClubID", Request.QueryString["club"]);
txtClubName.Text = sqlCommand.ExecuteScalar() + "";
}
}
}
}
}
正如其他人已经说过的那样,错误会发生,因为您没有填充SQL语句中定义的Parameter。
无论如何,您根本不需要Adapter,在您的情况下,ExecuteScalar方法就足够了:
using (SqlConnection sqlConnection = new SqlConnection("..."))
{
sqlConnection.Open();
string strSQL = "Select youthclubname from youthclublist WHERE ([YouthClubID] = @YouthClubID)";
using (SqlCommand sqlCommand = new SqlCommand(strSQL, sqlConnection))
{
sqlCommand.Parameters.AddWithValue("@YouthClubID", Request.QueryString["club"]);
txtClubName.Text = sqlCommand.ExecuteScalar() + "";
}
}
在上面的例子中,我假设俱乐部ID被传递为page.aspx?club=[id here]
,这意味着查询字符串变量名称是"俱乐部",当然改为真实名称。
+ ""
部分用于在数据库中没有匹配值的情况下放置空文本
当没有这样的值时,sqlCommand.ExecuteScalar()
将返回null,其简单方式为:
txtClubName.Text = sqlCommand.ExecuteScalar().ToString();
在这种情况下会产生错误——通过添加空字符串,自动转换为字符串,看起来更漂亮。也可以看看这个问题。不用说,如果的值不是null,它就不会被更改。
SqlConnection sqlConnection = new SqlConnection("...");
SqlCommand command = new SqlCommand("Select youthclubname from youthclublist WHERE ([YouthClubID] = @YouthClubID)", sqlConnection);
command.Parameters.Add("@YouthClubID", SqlDbType.Int);
command.Parameters["@YouthClubID"].Value = clubID;
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(command);
您需要将参数添加到命令对象中。SqlDataAdapter,试试这个。a您只从db返回一个值,您可以使用ExecuteScalar方法
SqlDataAdapter adapter = new SqlDataAdapter();
// Create the SelectCommand.
SqlCommand command = new SqlCommand(Select youthclubname from youthclublist WHERE ([YouthClubID] = @YouthClubID)", sqlConnection);
// Add the parameters for the SelectCommand.
command.Parameters.AddWithValue("@YouthClubID", yourYouthClubID);
yourClubName = sqlCommand.ExecuteScalar();
您在SQL语句中使用了一个变量,您必须在C#代码中定义/设置该变量。
sqlConnection = new SqlConnection(<ConnectionString>);
sqlCommand = new _SQLCli.SqlCommand("Select youthclubname from youthclublist WHERE ([YouthClubID] = @YouthClubID)",sqlConnection);
sqlCommand.Parameters
.Add(new _SQLCli.SqlParameter( "@YouthClubID", <neededValue>);)
sqlDataAdapter = new SqlDataAdapter(sqlCommand);