Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 如何从托管在appharbor中的wcf应用程序和数据库中选择*_Visual Studio_Wcf_Appharbor - Fatal编程技术网

Visual studio 如何从托管在appharbor中的wcf应用程序和数据库中选择*

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

这是我第一次在visual studio(2015)中使用WCF,我遇到了一些问题。 我的数据库托管在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;
    }
问题:当我尝试从中选择时:

    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.");
}