我正在尝试设置sqldatasource
的{{1}}参数selectcommand
的值,如下面的代码所示,但它没有成功。
@ClientID
我做错了什么?
答案 0 :(得分:8)
使其工作的技巧是在添加之前删除您尝试使用的paremeter。您的代码的以下改编版本应该有效:
' NOTE that there is no "@" sign when you use your parameters in the code
Parameter p = strCommandSqlDataSource2.SelectParameters["ClientID"]
strCommandSqlDataSource2.SelectParameters.Remove(p)
strCommandSqlDataSource2.SelectParameters.Add("ClientID", iClientID)
在其使用的代码部分中命名参数时,不应使用“@”符号。您应该只在SQLCOMMAND字符串中使用它。
希望它有所帮助。
答案 1 :(得分:3)
您可以设置参数的值:
SqlParameter parameter1 = new SqlParameter("@ClientID", SqlDbType.BigInt);
parameter1.Value = 32;
SqlDataSource2.SelectParameters.Add(parameter1);
答案 2 :(得分:2)
没关系......配置数据源的参数以获取另一个控件的值..
答案 3 :(得分:1)
如果您使用WYSIWYG编辑器创建数据源并且想要以编程方式更新SQL参数,那么您需要执行以下操作:
Dim strCommand = "SELECT caller_id, phone, name, email FROM callers WHERE client_id=@ClientID"
SqlDataSource2.SelectCommand = strCommand
**SqlDataSource2.SelectParameters.Clear();**
SqlDataSource2.SelectParameters.Add("@ClientID", iClientID)
答案 4 :(得分:1)
我有从GET变量到SelectCommand参数的解决方案
{{1}}
答案 5 :(得分:0)
你可以通过SqlDataSource上的Selecting事件来解决它,我现在在这种控件中如何限制受到限制!!!
另一种方法是在表单中添加一个HiddenField,SqlDataSource可以从那里获取它的值。
答案 6 :(得分:0)
这是VB版本:
Dim parameter As New System.Web.UI.WebControls.Parameter("ClientID", Data.DbType.Int32)
parameter.DefaultValue = 45
sqlTicketInfo.SelectParameters.Add(parameter)
使用VB.NET版本,没有办法实际设置值,所以我设置了默认值。如果未初始化值,则使用默认值,因为我们无法设置该值,所以它将自动使用默认值。
答案 7 :(得分:0)
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlDataSource SqlDataSource1 = new SqlDataSource();
SqlDataSource1.ID = "SqlDataSource1";
this.Page.Controls.Add(SqlDataSource1);
SqlDataSource1.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["ConID"].ConnectionString;
SqlDataSource1.SelectCommand = "SELECT caller_id, phone, name, email FROM callers WHERE client_id=@ClientID";
SqlDataSource1.SelectParameters.Add("ClientID",ClientID);
GridView1.DataSource = SqlDataSource1;
GridView1.DataBind();
}
}