Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.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
C# 将枚举值写入db列 我使用我认为是非常标准的C语言和T-SQL代码来填充数据类型 char(1)< /C> >基于C* EnUM > char 值:_C#_Sql Server_Stored Procedures_Enums - Fatal编程技术网

C# 将枚举值写入db列 我使用我认为是非常标准的C语言和T-SQL代码来填充数据类型 char(1)< /C> >基于C* EnUM > char 值:

C# 将枚举值写入db列 我使用我认为是非常标准的C语言和T-SQL代码来填充数据类型 char(1)< /C> >基于C* EnUM > char 值:,c#,sql-server,stored-procedures,enums,C#,Sql Server,Stored Procedures,Enums,我看到一个星号*在应该写入C时写入db——但我一直无法找到一致的回购协议,我不知道这是怎么发生的 一些问题是如何将包含枚举中不存在的值的行插入到我的数据库中?星号在这种情况下有什么特殊意义吗 以下是具有代表性的代码-为了可读性而精简: CREATE TABLE [MY_TABLE]( [ID] [bigint] IDENTITY(1,1) NOT NULL, [STATUS] [char](1) NOT NULL, PRIMARY KEY CLUSTERED ( [ID

我看到一个星号
*
在应该写入
C
时写入db——但我一直无法找到一致的回购协议,我不知道这是怎么发生的

一些问题是如何将包含枚举中不存在的值的行插入到我的数据库中?星号在这种情况下有什么特殊意义吗

以下是具有代表性的代码-为了可读性而精简:

CREATE TABLE [MY_TABLE](
    [ID] [bigint] IDENTITY(1,1) NOT NULL,
    [STATUS] [char](1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]


CREATE PROCEDURE [INSERT_TO_MY_TABLE]
(
   @status [char](1)
)
AS
BEGIN
  INSERT INTO [MY_TABLE]
  (
    [STATUS]
  )
  VALUES
  (
     @status
  )
END


public enum Status
{
    Adult = 'A',
    Juvenile = 'J',
    Child = 'C'
}
Statu status = Status.Child;
using (var command = connection.CreateCommand())
{
    command.CommandText = $"INSERT_TO_MY_TABLE";
    command.CommandType = CommandType.StoredProcedure;
    command.Parameters.Add(new SqlParameter($"@status", (char)status));
    command.ExecuteNonQuery();
}

看起来代码中有Status和StatusEnum处于活动状态-两个不同的不相关枚举

您想将StatusEnum更改为Status

此外,字符串转换可以生成值“Child”而不是“C”作为参考


status.ToString().Substring(0,1)-将提取“Child”的第一个字符,而不是“C”的值。

在将“*”写入表的代码中,我们没有看到其他内容。在你发布的片段中,这是不可能发生的。如果您需要处理字符,可能会出现重复。我建议您使用常量,或者使用
char
属性创建一个类,并为允许的字符值创建一组静态实例,而不是使用
enum
@juharr将
enum
char
值一起使用会有什么问题对不起,StatusEnum是一个输入错误-我现在已经解决了