C# 命令?您是否调试过该命令以查看tableName实际上是什么?执行此操作并返回报告表的名称以及作为tableName传递的内容。如果只需要列,请添加一个WHERE 1=0。您显然不需要任何行,那么为什么要获取它们呢?添加了我的答案,您可以尝试一下吗?我认为
C# 命令?您是否调试过该命令以查看tableName实际上是什么?执行此操作并返回报告表的名称以及作为tableName传递的内容。如果只需要列,请添加一个WHERE 1=0。您显然不需要任何行,那么为什么要获取它们呢?添加了我的答案,您可以尝试一下吗?我认为,c#,asp.net,sql-server,C#,Asp.net,Sql Server,命令?您是否调试过该命令以查看tableName实际上是什么?执行此操作并返回报告表的名称以及作为tableName传递的内容。如果只需要列,请添加一个WHERE 1=0。您显然不需要任何行,那么为什么要获取它们呢?添加了我的答案,您可以尝试一下吗?我认为查询中没有错误。你能发布函数详细信息吗,这是GetSqlStringCommand?这与从“+tableName中选择*相同,为什么你认为这会有帮助?@vasily.sib-但它更清晰,我添加了代码来检查tableName是否为空,我非常怀疑是
命令?您是否调试过该命令以查看
tableName
实际上是什么?执行此操作并返回报告表的名称以及作为tableName
传递的内容。如果只需要列,请添加一个WHERE 1=0。您显然不需要任何行,那么为什么要获取它们呢?添加了我的答案,您可以尝试一下吗?我认为查询中没有错误。你能发布函数详细信息吗,这是GetSqlStringCommand?这与从“+tableName中选择*相同,为什么你认为这会有帮助?@vasily.sib-但它更清晰,我添加了代码来检查tableName是否为空,我非常怀疑是否更清晰。检查是否为空是没有意义的<代码>“某些字符串”+string.Empty
,“某些字符串”+null
和$“某些字符串{null}”
将产生相同的结果string@vasily.sib-您是正确的,但如果您发送“select*from(空字符串中无值)”,则sql会给出错误,根据OP在中给出的错误,这也是问题的原因question@vasily.sib-根据此靠近“FROM”的语法不正确。
如果没有给出表值或表值包含错误输入,则可能会导致错误。这与“SELECT*FROM”+tableName
相同,您认为这有什么帮助?@vasily.sib-但是它更清晰,我添加了代码来检查tableName是否为空,我非常怀疑是否更清晰。检查是否为空是没有意义的<代码>“某些字符串”+string.Empty
,“某些字符串”+null
和$“某些字符串{null}”
将产生相同的结果string@vasily.sib-您是正确的,但如果您发送“select*from(空字符串中无值)”,则sql会给出错误,根据OP在中给出的错误,这也是问题的原因question@vasily.sib-根据此靠近“FROM”的语法不正确。
如果没有给出表值,可能会导致错误,或者表值包含错误输入
public List<string> GetTableColumns(string tableName)
{
List<string> colCollection = new List<string>();
IDataReader reader = null;
using (var cmd = MyDB.GetSqlStringCommand("SELECT * FROM " + tableName))
{
using (reader = MyDB.ExecuteReader(cmd))
{
foreach (DataRow r in reader.GetSchemaTable().Rows)
{
colCollection.Add(r["ColumnName"].ToString());
}
reader.Close();
}
}
return colCollection;
}
public List<string> GetTableColumns(string tableName)
{
if(!String.IsNullOrWhiteSpace(tableName))
{
string query = string.Format( "SELECT * FROM [{0}]",tableName);
// or use string interpolation
string query = $"SELECT * FROM [{tableName}]";
//rest of the code execute reader
//return collection of string
}
return new List<string>();
}
public List<string> GetTableColumns(string tableName)
{
if (tableName == null)
throw new ArgumentNullException(nameof(tableName));
if (string.IsNullOrWhitespace(tableName))
throw new ArgumentException("Table name can't be empty!", nameof(tableName));
List<string> colCollection = new List<string>();
using (var cmd = MyDB.GetSqlStringCommand($"SELECT * FROM {tableName}"))
using (var reader = MyDB.ExecuteReader(cmd))
foreach (DataRow r in reader.GetSchemaTable().Rows)
colCollection.Add(r["ColumnName"].ToString());
return colCollection;
}