小编Jay*_*Jay的帖子

使用SQLDataReader可以为Nulllable DateTime

我几乎不想问这个问题似乎已被问过一百万次,但即使我研究另一个问题,我仍然无法在我的案例中弄清楚这一点.

我读到DateTime是一个可以为空的类型,我尝试了一些示例,但我试图弄清楚数据库中我的SQLDATAREADER是否失败是否为NULL.

错误

System.Data.SqlTypes.SqlNullValueException:数据为空.无法在Null值上调用此方法或属性.

DetailsClass

private DateTime? startingDate;

public DateTime? StartingDate
{
    get{ return startingDate; }
    set{ startingDate = value; }
}

// constructor
Public DetailsClass(DateTime? startingDate)
{
    this.startingDate = startingDate;
}
Run Code Online (Sandbox Code Playgroud)

DBClass

   using (SqlConnection con = new SqlConnection(connectionString))
            using (SqlCommand cmd = con.CreateCommand())
            {

                List<DetailsClass> details = new List<DetailsClass>();
                DetailsClass dtl;
                try
                {
                    con.Open();
                    cmd.CommandText = "Stored Procedure Name";
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@MyParameter", myparameter);

                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            dtl = new DetailsClass((
                                reader.GetInt32(reader.GetOrdinal("MEMBERSHIPGEN"))),
                                reader.IsDBNull(1) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net

20
推荐指数
1
解决办法
2万
查看次数

找不到对称密钥'',因为它不存在或者您没有权限

使用SQL 2005

我创建了一个通过密码加密的主密钥,然后使用服务主密钥加密了主密钥

然后我创建了一个ASYMMETRIC_KEY用于加密我的SYMMETRIC_KEY我使用SA用户进行了SQL所有这一切,并作为域管理员登录到Windows服务器.

我的数据库中有一个用户只有我的数据库的dbo权限,然后我授予该用户对所有必要的存储过程的执行权限,我也拒绝对这些存储过程的视图定义.

存储过程给我带来麻烦,我在这里进行加密.这一切都在我的测试PC上的SQL2012上工作,但现在我在生产服务器上使用sql 2005创建它并且它失败了

open symmetric key
    MYKEY_NAME_SYM decryption by Asymmetric key MYKEY_NAME_ASYM
    set @ENCRYPTVARIABLE = (select ENCRYPTBYKEY(KEY_GUID('MYKEY_NAME_SYM'), @ENCRYPTCOLUMN))    
close symmetric key MYKEY_NAME_SYM
Run Code Online (Sandbox Code Playgroud)

我收到的错误是:

Cannot find the symmetric key 'MKEY_NAME_SYM', because it does not exist or you do not have permission.
Run Code Online (Sandbox Code Playgroud)

所以我猜我在我的数据库中使用的用户没有权限,但是当我尝试授予权限时

GRANT 
VIEW DEFINITION ON SYMMETRIC KEY::MKEY_NAME_SYM TO [myuser]
Run Code Online (Sandbox Code Playgroud)

我得到相同的错误找不到对称密钥或我没有权限.

sql encryption sql-server-2005

9
推荐指数
2
解决办法
2万
查看次数

获取设置属性从日期时间中删除时间

如何从" DateTime获取集属性"中删除时间部分

下面的代码不起作用,我尝试了几种方法.我也试过了dateValue.ToString("d")

private DateTime dateValue;

public DateTime DateValue
{
   get
    {
       //First Try
       return dateValue.ToShortDateString;
       //Second Try
       return dateValue.ToString("d")
       //Third Try
       DateTime dateValue = DateTime.????(not sure)
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net

4
推荐指数
2
解决办法
799
查看次数

标签 统计

asp.net ×2

c# ×2

encryption ×1

sql ×1

sql-server-2005 ×1