从表中检索id值,以便稍后使用

时间:2015-11-20 12:11:01

标签: c# sql .net

我尝试从表P_identity中检索值P_id(自动增量)以将其存储在表Communication中。看来那种错误

  

“错误:System.Data.SqlClient.SqlException(0x80131904):转换   转换nvarchar值'SELECT P_id FROM P_identity时失败   在Amka ='15598970695''到数据类型int。“

我该如何解决?

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/test")
public class TestRestController {
    @Autowired
    public TestRestController (TestService testService) {
        super(testService);
    }
}

1 个答案:

答案 0 :(得分:1)

听起来你只需删除

中的单引号
WHERE Amka  = '" + TextBoxAmka.Text + "'"

部分为

WHERE Amka  = " + TextBoxAmka.Text

Amka列似乎是一个数值。对ExecuteNonQuery语句使用SELECT似乎毫无意义。如果您想从语句中获取结果值,可以使用ExecuteReader

或者,如果您的SELECT语句只返回一个值,则可以使用ExecuteScalar,这完全适合这种情况。

int id = (int)com2.ExecuteScalar();

还有一些事情;

  • SELECT语句使用参数化查询,就像对INSERT语句一样。
  • 使用using statement自动处理您的连接和命令,而不是手动调用Close方法。
  • 请勿使用AddWithValue方法。 It may generate unexpected results sometimes。使用Add方法重载来指定参数类型及其大小。