当我输入SQL客户端时,SQL上的SQL工作得很漂亮。但是,当我尝试在csharp中以编程方式执行此操作时,不会返回任何数据。数据被添加到follows_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?
答案 0 :(得分:2)
拍摄。我想通了。需要。 dr.Read();遗憾!
答案 1 :(得分:2)
在数据阅读器中有任何内容之前,您必须致电Read
:
dr.Read();
此外,插入可能会产生结果,在这种情况下,您必须先获取下一个结果才能获得身份:
dr.NextResult();
dr.Read();
答案 2 :(得分:2)
你也可以string type_id = cmd.ExecuteScalar().ToString();
立即分配并避免使用SQLDataReader对象。