【问题标题】:Alternate meaning of SqlCommand's 1st parameterSqlCommand 的第一个参数的替代含义
【发布时间】:2014-01-21 16:58:48
【问题描述】:

根据 MSDN,SqlCommand(String, SqlConnection) 的第一个参数的默认含义是一个字符串,其中包含对指定数据库连接的查询,例如

String = "INSERT INTO abc(id, name) VALUES(param1, param2)";

我在别人的代码中发现了这个:

SqlCommand cmd = new SqlCommand("rp_air_etg", sql_database_connection);

这是否意味着“cmd”正在从 SQL 脚本中隐式导入查询?

但是,我在解决方案或项目文件夹中的任何位置都找不到名为“rp_air_etg”的文件。

【问题讨论】:

  • 那是存储过程名
  • @SergeyBerezovskiy,我的输入速度不够快:)
  • @DanAndrews 我也不喜欢 =)
  • 你可能会发现SqlCommand.CommandType Property被设置为CommandType.StoredProcedure
  • @AndrewMorton 不需要 - 您可以使用命令类型 Text 运行存储过程(服务器和参数名称上的消息缓冲只有一些区别)

标签: c# sql ado.net


【解决方案1】:

第一个参数分配给CommandText 属性,该属性可以是SQL 语句、表名或要在数据源执行的存储过程。这在 SqlCommand 构造函数的 remarks 部分中显示 - 您可以看到 CommandText 初始值等于 cmdText 参数。这是实现:

public SqlCommand(string cmdText, SqlConnection connection) : this()
{
    this.CommandText = cmdText;
    this.Connection = connection;
}

因此,在您的情况下,它是表名或存储过程名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 2019-09-08
    • 2014-09-02
    • 2016-04-14
    • 2018-08-08
    相关资源
    最近更新 更多