无法理解更新查询中的@变量

时间:2015-07-03 12:52:07

标签: c# asp.net gridview

我再次。我无法理解查询中的@variables。

例如:

UPDATE tbSystems SET Systems = @Systems WHERE id = @id

我尝试将日期从具有AutoGenerateEditButton的gridview升级为True。这是aspx文件:

                <asp:GridView ID="gv1" 
                    runat="server" 
                    CellPadding="2"
                    DataKeyNames="id"
                    AutoGenerateDeleteButton="True"
                    AutoGenerateEditButton="True" 
                    OnRowDeleting="gv1_RowDeleting"
                    OnRowDeleted="gv1_RowDeleted"
                    OnRowUpdating="gv1_RowUpdating">
                </asp:GridView>

这是OnRowUpdating函数调用的函数:

 protected void gv1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            switch (strType)
            {
                case "servers":
                    Response.Write("1");
                    break;
                case "systems":
                    DS.UpdateCommand = "UPDATE tbSystems SET Systems = @Systems WHERE id = @id";
                    break;
                case "itOwners":
                    Response.Write("3");
                    break;
                case "systemOwners":
                    Response.Write("4");
                    break;
                default:
                    break;
            }
            gv1.EditIndex = -1;
            gv1.DataSourceID = DS.ID;
            gv1.DataBind();
        }

我一直在测试一些没有成功的事情。

试图:

  • 将系统添加到DatakeyNames。这可以防止在Gridview中创建文本框。
  • 为SqlDataSource添加了一个Systems参数。这给了我一个错误,告诉我Systems变量已经存在。
  • 在Gridview编辑文本框中获取信息但没有任何成功。永远得到原始价值而不是新价值。

以下是我的一些问题:

  1. DataKeyNames是否只用于识别主键?
  2. 如何获取在gridview的编辑选项创建的文本框中输入的信息?
  3. 如何获取或设置@variables中的信息?
  4. 谢谢,

1 个答案:

答案 0 :(得分:1)

1. DataKeyNames应仅用于识别主键吗?

2.如何获取在gridview的编辑选项创建的文本框中输入的信息?

你必须回复一个帖子,然后你可以从gridview对象中检索它们。

3.如何在@variables中获取或设置信息?

这些是要发送到数据库的参数的变量,可以像这样工作

string sql = "UPDATE tbSystems SET Systems = @Systems WHERE id = @id";
SqlConnection connection = new SqlConnection("your connection string");
SqlCommand command = new SqlCommand(sql, connection);

SqlParameter param = new SqlParameter();
             param.ParameterName = "@Systems";
             param.Value         = systems;

command.Parameters.Add(param);

SqlParameter paramId  = new SqlParameter();
             paramId.ParameterName = "@id";
             paramId.Value         = Id;

command.Parameters.Add(paramId);

编辑,显示参数对象的创建。

相关问题