小编iWe*_*sel的帖子

在不插入行的情况下获取下一个ID

是否有可能在SQL(SQL Server)中从表中的标识列检索下一个ID(整数),而实际上没有插入行?如果最近的行被删除,则不一定是最高ID加1.

我问这个是因为我们偶尔需要用新行更新实时数据库.行的ID在我们的代码中使用(例如Switch(ID){Case ID:}并且必须相同.如果我们的开发DB和实时DB不同步,那么提前预测行ID会很不错在部署之前.

我当然可以设置IDENTITY OFF SET INSERT_IDENTITY ON或运行一个事务(这会回滚ID吗?)等但是想知道是否有一个函数返回了下一个ID(没有增加它).

sql sql-server

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

C#中的对象,参数和ref关键字

当方法的形式参数是'object'类型时,通过继承,实际参数可以是任何对象类型.一旦进入方法,对象就可以转换为预期的类型.一切都很好.

但是,如果方法的签名具有'object'的形式参数,则使用ref关键字即methodname(ref object),编译器会抛出一个错误,指出:

"'ByRefTest.Program.changeMeByRef(ref object)'的最佳重载方法匹配'有一些无效的参数."Argument'1':无法从'ref ByRefTest.Person'转换为'ref object'"

在将对象作为参数传递时使用或不使用ref keword之间的区别在A. Friedman的博客http://crazorsharp.blogspot.com/2009/07/passing-objects-using-ref-keywordwait.html中有很好的解释,但是,当'object'类型的形式参数使用ref关键字时,为什么不能将自定义类型作为实际参数传递?

举个例子:

class Program
{
    static void Main(string[] args)
    {
        Person p = new Person();

        changeMe(p); // compiles
        changeMeByRef(ref p); // throws error

        object pObject = (object)p;
        changeMeByRef(ref pObject); // compiles
    }


    public static void changeMeByRef(ref object obj)
    {
        Person p = (Person)obj;
    }

    public static void changeMe(object obj)
    {
        Person p = (Person)obj;

    }
}

public class Person
{
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

ps我刚刚将签名更改为:

public static void changeMeByRef <T>(ref T …

.net c#

5
推荐指数
1
解决办法
2402
查看次数

var1 = var2 = true; 优点缺点?

在声明中使用多个赋值是否有任何优点或缺点?在简单的例子中

var1 = var2 = true;

这个分配是从右到左(我相信C#中的所有作业,可能是Java,虽然我还没有检查过后者).但是这样编码会产生什么影响(编译,执行或其他)?

干杯.

c#

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

标签 统计

c# ×2

.net ×1

sql ×1

sql-server ×1