c# - 尝试通过存储过程插入值
问题描述
我正在尝试通过存储过程插入值,但是一切似乎都运行成功,但数据没有插入数据库。
这是表设置:
CREATE TABLE [dbo].[Owner]
(
[ClientID] INT IDENTITY (101, 1) NOT NULL,
[Title] NCHAR (10) NULL,
[Forename] NVARCHAR (50) NULL,
[Surname] NVARCHAR (50) NULL,
[Address1] NVARCHAR (50) NULL,
[EmailAddress] NVARCHAR (50) NULL,
[TelephoneNo] NVARCHAR (50) NULL,
[DateOfBirth] NVARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([ClientID] ASC)
)
这是存储过程:
CREATE PROCEDURE [dbo].AddOwner
@Title nvarchar(50),
@Forename nvarchar(50),
@Surname nvarchar(50),
@Address1 nvarchar(50),
@EmailAddress nvarchar(50),
@TelephoneNo nvarchar(50),
@DateOfBirth nvarchar(50)
AS
INSERT INTO Owner(Title, Forename, Surname, Address1, EmailAddress, TelephoneNo, DateOfBirth)
VALUES (@Title, @Forename, @Surname, @Address1, @EmailAddress, @TelephoneNo, @DateOfBirth)
RETURN 0
这是ProjectDal:
public static int AddOwner(string Title, string Forename, string Surname,string EmailAddress, string TelephoneNo, string DateOfBirth, string Address1)
{
using (SqlConnection connection = new SqlConnection(_connectionstring))
{
connection.Open();
SqlCommand insertClientCommand = new SqlCommand();
insertClientCommand.Connection = connection;
insertClientCommand.CommandType = System.Data.CommandType.StoredProcedure;
insertClientCommand.CommandText = "AddOwner";
insertClientCommand.Parameters.Add(new SqlParameter("@Title", Title));
insertClientCommand.Parameters.Add(new SqlParameter("@Forename", Forename));
insertClientCommand.Parameters.Add(new SqlParameter("@Surname", Surname));
insertClientCommand.Parameters.Add(new SqlParameter("@Address1", Address1));
insertClientCommand.Parameters.Add(new SqlParameter("@EmailAddress", EmailAddress));
insertClientCommand.Parameters.Add(new SqlParameter("@TelephoneNo", TelephoneNo));
insertClientCommand.Parameters.Add(new SqlParameter("@DateOfBirth", DateOfBirth));
// insertClientCommand.Parameters.Add(new SqlParameter("@Address2", Address2));
// insertClientCommand.Parameters.Add(new SqlParameter("@PostCode", PostCode));
int rowsAffected = insertClientCommand.ExecuteNonQuery();
connection.Close();
return rowsAffected;
}
}
帮助将不胜感激。谢谢
解决方案
有几件事需要检查:
- 如果 _connection 字符串中指定了正确的数据库
- 如果标题列没有截断:表中的字段长度为 10 个字符,而 SP 中的字段长度为 50 个字符
- 你会得到什么 RowsAffected
推荐阅读
- printing - vscode在python打印语句的对象之间插入换行符
- android - 房间数据库的非仪器测试
- android - 当没有显示错误但结果出乎意料时如何调试 ConstraintSet 错误
- wso2 - 如何更改 wso2 api 管理器上的生产端点端口?
- jestjs - 如何监视组件外部的功能?
- ruby - 检查字符串是否匹配
- python - 如何解码列表中作为字节 b'string' 的任何字符串字段
- visual-studio-2017 - Service Fabric 无状态服务项目类型中缺少文件嵌套选项
- arrays - 比较两个二维数组以匹配字符串
- react-native - 我不知道是什么导致了这个错误,require 没有定义