Visual studio 如何从托管在appharbor中的wcf应用程序和数据库中选择*
这是我第一次在visual studio(2015)中使用WCF,我遇到了一些问题。 我的数据库托管在appharbor。我成功地通过以下方式将新项目插入数据库:Visual studio 如何从托管在appharbor中的wcf应用程序和数据库中选择*,visual-studio,wcf,appharbor,Visual Studio,Wcf,Appharbor,这是我第一次在visual studio(2015)中使用WCF,我遇到了一些问题。 我的数据库托管在appharbor。我成功地通过以下方式将新项目插入数据库: public Test Insert (Test TestTable) { SqlConnection conGet = new SqlConnection(connectionString); SqlCommand cmd = new SqlCommand(connectionStri
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;
}
问题:当我尝试从中选择时:
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)没有读取任何内容,只返回空值,即使测试表中有行
请给我一些指点?我在网上试过几种方法,但没有成功。。谢谢大家! 删除深度测试。Sql数据提供程序不支持该属性。它总是零 资料来源:MSDN 最外面的桌子深度为零。NET框架数据 SQL Server提供程序不支持嵌套,并且始终返回 零 如果要测试无行的情况,请使用属性
嗨,谢谢你的回复。我试过了,现在它突出显示test.testID=(int)rd[“testID”]并显示“CMMS-WCF.dll中发生了“System.InvalidCastException”类型的异常,但未在用户代码中处理。其他信息:指定的强制转换无效。”表是通过类型“char”创建的,因此我尝试执行test.testID=(char)rd[“testID”]那也不管用。。。有什么建议吗?当您强制转换到(char)时,错误是相同的吗?您确定查询检索到的每一行在所涉及的列中都有值吗?testID列的大小是多少?我们不能直接强制转换类型不正确或为null的内容。char类型的列是NET的字符串。查看MSDN上关于是的这一页。。。我也犯了同样的错误。这些列中有值。表是如何创建的:抱歉,我看不到这些信息。了解如何正确提取rd[“fieldName”]的值非常重要。字段集合在网络中被类型化为object,我们需要应用正确的转换Hi Steve,抱歉,看起来它没有通过。我按照您的建议将属性类型更改为string,并且成功了!谢谢:D。我只有最后一个问题。为了获取所有数据,我不得不把所有的东西都列在一个列表中。但是我需要返回一个对象。我试着投下它,但没有成功。。。还有别的办法吗?非常感谢。
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.");
}