C#选择Transact-SQL(表列属性)
问题描述:
我想选择使用c#的表列属性。我写了这段代码。我的查询正在处理sqlserver。但我不会在C#中获得最大长度。C#选择Transact-SQL(表列属性)
我的查询是这里
//TableName:Contents, ColumnName : Title
select Col_Length('Contents','Title') as columnLengthh
结果是在这里:
我的C#代码这里:
string columnLength = "select Col_Length('Contents','Title') as columnLengthh";
adapter = new SqlDataAdapter(columnLength, connection);
dataSet = new DataSet();
adapter.Fill(dataSet);
DataTable dataTable2 = dataSet.Tables[0];
foreach (DataRow row in dataTable2.Rows)
{
var x = row["columnLengthh"].ToString();
}
结果(x = -1)
如何在c#中获得长度。
请帮忙!
答
检查你的查询是否正确
更改ConnectionString,以匹配你所拥有的 - 例如:
string connectionString = @"server=localhost\mysqlserver;database=master;Trusted_Connection=True;";
,并使用下面的代码:
string queryString = "select Col_Length('Contents','Title') as columnLengthh";
string connectionString = @"your con string";
SqlConnection connection = null;
try
{
connection = new SqlConnection(connectionString);
using (SqlCommand command = new SqlCommand(queryString, connection))
{
connection.Open();
var result = command.ExecuteScalar();
Console.WriteLine("columnLengthh = {0}", result);
}
}
catch (Exception ex)
{
ex.ToString();
}
finally
{
connection.Close();
}
+0
谢谢。 ) –
+0
没有问题,祝你好运,随时提问 – SCramphorn
答
只需使用SqlConnection
,SqlCommand
,SqlReader
等类与SQL Server进行通信。
string queryString = "select Col_Length('Contents','Title') as columnLengthh";
string connectionString = "Your connection string";
SqlConnection connection = null;
try
{
connection = new SqlConnection(connectionString)
using (SqlCommand command = new SqlCommand(queryString, connection)) ;
{
connection.Open();
var result = command.ExecuteScalar();
Console.WriteLine("columnLengthh = {0}", result);
}
}
finally
{
connection.Close();
}
你的语句返回一个值,你不应该使用适配器/数据集,而只需调用command.ExecuteScalar() –
检查您的连接。除了创建Dataset和DataTable的不必要开销外,我在代码中看到没有错误。 -1是COLLENGTH()值的合法值:对于使用最大说明符('varchar(max)')声明的varchar类型的列,“COL_LENGTH”返回值-1。 – Serg