0

当输入到我的 SQL 客户端时,这方面的 SQL 工作得很好。但是,当我尝试在 csharp 中以编程方式执行此操作时,不会返回任何数据。数据被添加到 follow_fb_threads 表中,但是当我尝试从数据读取器读取时出现错误。它告诉我我的数据为空。

        SqlDataReader dr;

        using (cmd = new SqlCommand("INSERT INTO followups_fb_threads (thread_id, thread_time, sender_name, sender_fb_id, sender_location) VALUES (@thread_id, @thread_time, @sender_name, @sender_fb_id, @sender_location); SELECT SCOPE_IDENTITY() AS [SCOPE_IDENTITY];", con)) ;

        cmd.Parameters.Add(new SqlParameter("thread_id", thread_id));
        cmd.Parameters.Add(new SqlParameter("thread_time", thread_time));
        cmd.Parameters.Add(new SqlParameter("sender_name", sender_name));
        cmd.Parameters.Add(new SqlParameter("sender_fb_id", master_sender_fb_id));
        cmd.Parameters.Add(new SqlParameter("sender_location", sender_location));
        dr = cmd.ExecuteReader();


        string type_id = dr[0].ToString();  // YOU SHOULD HAVE DATA BUT IS NULL? WTH?
4

3 回答 3

2

射击。我想通了。需要。博士读();对不起!

于 2012-10-01T00:11:59.963 回答
2

Read您必须在数据阅读器中有任何内容之前调用:

dr.Read();

此外,插入可能会产生结果,在这种情况下,您必须继续下一个结果才能获得身份:

dr.NextResult();
dr.Read();
于 2012-10-01T00:14:10.507 回答
2

您也可以string type_id = cmd.ExecuteScalar().ToString();立即分配并避免使用 SQLDataReader 对象。

于 2012-10-01T00:23:37.250 回答