当列为空时,SqlDataReader 不读取

SqlDataReader doesn't read when column empty

我对以下代码有疑问:

public void checkTypes(String sqlTable, String sqlColumn)
{
    using (SqlConnection connection = new       SqlConnection(conStr.Text))
    {
        String query = "SELECT " + sqlColumn + " FROM " + sqlTable;

        SqlCommand command = new SqlCommand(query, connection);

        connection.Open();
        SqlDataReader read = command.ExecuteReader();

        while (read.Read())
        {
            for (int i = 0; i < read.FieldCount; i++)
            {
                Type dataType = read.GetFieldType(i);

                if (dataType == typeof(int))
                {
                    // Do for integers (INT, SMALLINT, BIGINT)
                    typeOf = "Integer";
                    read.Close();
                    connection.Close();
                    return;
                }
                else if (dataType == typeof(double))
                {
                     //and so on...
                }
            }
        }
    }
}

现在...我只想检查我的列的类型,但问题是当创建 table 时它没有条目,然后 while 循环根本没有进入。如何在不编写全新代码的情况下稍微修改它?我不想插入伪值。谢谢!希望有人能帮助我。

编辑:

好的,我再解释一下: 用户可以在不同的文本框中输入列名。现在我想从每个框中获取列名并检查数据类型是否与列应具有的数据类型匹配。

考虑到你只需要检查列的数据类型,如果你想单独获取SQL数据库中的列数据类型,你可以使用查询

SELECT COLUMN_NAME, DATA_TYPE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_NAME = 'yourTableName'

希望helps.But这不会有助于同时检索数据和列数据类型。

Akhil 先于我,但我会把它扩展到

SELECT COLUMN_NAME, DATA_TYPE
FROM information_schema.columns
WHERE table_name = 'tableName' AND column_name = 'columnName'

因为您已经有了列名和 table 名称