The legacy code does it this way:
public bool isValidField(string tableName, string fieldName)
{
bool retVal;
string tblQuery = string.Format(\"SELEC
public bool IsValidField(SqlCeConnection objCon, string tableName, string columnName)
{
const string query = "SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS"
+ " WHERE TABLE_NAME = @TABLENAME AND"
+ " COLUMN_NAME = @COLUMNNAME";
using (var cmd = new SqlCeCommand(query, objCon))
{
cmd.Parameters.Add("@TABLENAME", SqlDbType.NVarChar, 128).Value = tableName;
cmd.Parameters.Add("@COLUMNNAME", SqlDbType.NVarChar, 128).Value = columnName;
var objvalid = cmd.ExecuteScalar(); // will return 1 or null
return objvalid != null;
}
}
You can just query the information schema tables to get the information you want:
public bool isValidField(string tableName, string columnName)
{
var tblQuery = "SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS"
+ " WHERE TABLE_NAME = @tableName AND"
+ " COLUMN_NAME = @columnName";
SqlCeCommand cmd = objCon.CreateCommand();
cmd.CommandText = tblQuery;
var tblNameParam = new SqlCeParameter(
"@tableName",
SqlDbType.NVarChar,
128);
tblNameParam.Value = tableName
cmd.Parameters.Add(tblNameParam);
var colNameParam = new SqlCeParameter(
"@columnName",
SqlDbType.NVarChar,
128);
colNameParam.Value = columnName
cmd.Parameters.Add(colNameParam);
object objvalid = cmd.ExecuteScalar(); // will return 1 or null
return objvalid != null;
}