我有两个功能:
partial class Database
{
public void Insert(string table, params string[] values)
{
string query = "INSERT INTO [{0}] VALUES ('{1}')";
ExecuteNonQuery(string.Format(query, table, string.Join("','", values)));
}
public string Insert(string table, string returnedColumn, params string[] values)
{
string query = "INSERT INTO [{0}] OUTPUT INSERTED.{1} VALUES ('{2}')";
return ExecuteScalar(string.Format(query, table, returnedColumn, string.Join("','", values))).ToString();
}
}
这两个函数都在数据库的一个表上执行INSERT
。区别在于第一个只将数据插入到数据库中,而第二个还使用SQL中的OUTPUT
关键字返回插入行中某一列的值。
问题在于当我尝试调用第一个函数时,编译器会调用第二个函数。例如,如果我的代码是这样的:
Database DB = new Database();
DB.Insert("tableName", "some data");
实际上,Visual Studio将其视为我调用了第二个函数:
![enter image description here](https://istack.dev59.com/F5SBH.webp)
问题是什么以及如何解决?谢谢。