如何 SELECT * 从一个 wcf 应用程序,数据库托管在 appharbor
How to SELECT * from an wcf application, database hosted in appharbor
这是我第一次玩 WCF visual studio (2015),我 运行 遇到了一些问题。
我的数据库托管在 appharbor 中。我设法将新项目插入数据库:
public Test Insert (Test TestTable)
{
SqlConnection conGet = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(connectionString, conGet);
cmd.Parameters.AddWithValue("@testID", testTable.testID);
cmd.Parameters.AddWithValue("@testName", testTable.testName);
conGet.Open();
cmd.CommandText = "INSERT INTO TestTable (testID, testName) VALUES (@testID, @testName)";
cmd.ExecuteScalar();
conGet.Close();
return testTable;
}
问题:当我尝试从中 select 时:
public Test GetData(Test test)
{
SqlConnection conPut = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("SELECT * FROM TestTable", conPut);
conPut.Open();
SqlDataReader rd = cmd.ExecuteReader();
if (rd.Depth>0)
{
while (rd.Read())
{
test.testID = (int)rd["testID"];
test.testName = rd["testName"].ToString();
}
}
else
{
Console.WriteLine("No rows found.");
}
conPut.Close();
return test;
}
rd (SqlDataReader) 没有读取任何内容,只是 returns 一个空值,即使测试 table 中有行。
请指点一下好吗?网上试了好几种方法,都没有成功。。谢谢!
删除深度测试。 Sql DataProvider 不支持 属性。它始终为零
来源:MSDN SqlDataReader.Depth
The outermost table has a depth of zero. The .NET Framework Data
Provider for SQL Server does not support nesting and always returns
zero.
如果要测试没有行的情况,那么使用 属性 HasRows
SqlDataReader rd = cmd.ExecuteReader();
if (rd.HasRows)
{
while (rd.Read())
{
test.testID = (int)rd["testID"];
test.testName = rd["testName"].ToString();
}
}
else
{
Console.WriteLine("No rows found.");
}
这是我第一次玩 WCF visual studio (2015),我 运行 遇到了一些问题。 我的数据库托管在 appharbor 中。我设法将新项目插入数据库:
public Test Insert (Test TestTable)
{
SqlConnection conGet = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(connectionString, conGet);
cmd.Parameters.AddWithValue("@testID", testTable.testID);
cmd.Parameters.AddWithValue("@testName", testTable.testName);
conGet.Open();
cmd.CommandText = "INSERT INTO TestTable (testID, testName) VALUES (@testID, @testName)";
cmd.ExecuteScalar();
conGet.Close();
return testTable;
}
问题:当我尝试从中 select 时:
public Test GetData(Test test)
{
SqlConnection conPut = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("SELECT * FROM TestTable", conPut);
conPut.Open();
SqlDataReader rd = cmd.ExecuteReader();
if (rd.Depth>0)
{
while (rd.Read())
{
test.testID = (int)rd["testID"];
test.testName = rd["testName"].ToString();
}
}
else
{
Console.WriteLine("No rows found.");
}
conPut.Close();
return test;
}
rd (SqlDataReader) 没有读取任何内容,只是 returns 一个空值,即使测试 table 中有行。
请指点一下好吗?网上试了好几种方法,都没有成功。。谢谢!
删除深度测试。 Sql DataProvider 不支持 属性。它始终为零
来源:MSDN SqlDataReader.Depth
The outermost table has a depth of zero. The .NET Framework Data Provider for SQL Server does not support nesting and always returns zero.
如果要测试没有行的情况,那么使用 属性 HasRows
SqlDataReader rd = cmd.ExecuteReader();
if (rd.HasRows)
{
while (rd.Read())
{
test.testID = (int)rd["testID"];
test.testName = rd["testName"].ToString();
}
}
else
{
Console.WriteLine("No rows found.");
}