小编kas*_*hif的帖子

身份增量在SQL Server数据库中跳跃

FeeSQL Server 2012中的"ReceiptNo"列中的一个表中,数据库标识增量突然开始跳转到100而不是1,具体取决于以下两点.

  1. 如果它是1205446,则跳转到1206306,如果是1206321,则跳转到1207306,如果是1207314,则跳到1208306.我想让你注意的是,最后三位数保持不变,即每当跳跃时为306如下图所示.

  2. 我重新启动计算机时会出现此问题

在此输入图像描述

sql sql-server identity-column sql-server-2012

117
推荐指数
6
解决办法
7万
查看次数

如何在泛型方法中使用<T> .TryParse,而T是double或Int

在我的一个项目中,我正在使用以下两种方法.1. GetDoubleValue和2. GetIntValue.GetDoubleValue使用double.TryParse参数str字符串,如果失败则返回0,而GetIntValue尝试int.TryParse到参数str字符串,如果失败则返回0.我想要的是将这两个方法组合成一个通用方法,与字符串str一起接收参数T,这样如果我想使用GetDoubleValue方法,我可以使用double作为参数T,如果我想使用GetIntValue方法我可以使用Int为参数T

public double GetDoubleValue(string str)
{
    double d;
    double.TryParse(str, out d);
    return d;
}
public int GetIntValue(string str)
{
    int i;
    int.TryParse(str, out i);
    return i;
}
Run Code Online (Sandbox Code Playgroud)

注意:我尝试过这样的事情;

private T GetDoubleOrIntValue<T>(string str) where T : struct 
{
    T t;
    t.TryParse(str, out t);
    return t;
}
Run Code Online (Sandbox Code Playgroud)

编辑

在我的数据库中,我在具有numeric数据类型的不同表中有30多列.如果用户没有在文本框中键入任何内容,我想在每列中插入0,即他将所有或部分文本框留空.如果我不使用GetIntValue方法,我将不得不使用方法体超过30次.这就是我通过方法方法做到这一点的原因.例如,我正在编写三十多个例子中的三个

cmd.Parameters.Add("@AddmissionFee", SqlDbType.Decimal).Value = GetIntValue(tbadmissionfee.Text);
cmd.Parameters.Add("@ComputerFee", SqlDbType.Decimal).Value = GetIntValue(tbcomputerfee.Text);
cmd.Parameters.Add("@NotesCharges", SqlDbType.Decimal).Value = GetDoubleValue(tbnotescharges.Text);
Run Code Online (Sandbox Code Playgroud)

我想结合上述两种方法,因为今天我有两种这样的方法,如果组合起来不会给编程带来更好的改进,但明天我可能会有几十种这样的方法,最好组合成一种通用方法.例如,我可能有GetInt32Value,GetShortValue等希望它现在已经清除,为什么我想要这个?

c# generics

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

如何获取DevExpress XtraGrid的选定行值?

请看下面的图片

在此输入图像描述

当我使用以下代码单击一个单元格时,我在图中显示的三个文本框中获得所选行值.

void dataGridView1_CellClick_1(object sender, DataGridViewCellEventArgs e) {
    TBGRNo.Text = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString();
    TBSName.Text = dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString();
    TBFName.Text = dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:我将如何在DevExpress XtraGrid控件中做同样的事情?

c# devexpress xtragrid winforms

16
推荐指数
4
解决办法
15万
查看次数

"使用"有什么好处

我想了解它们之间的区别

public DataTable ExectNonActQuery(string spname, SqlCommand command)
{
    using (DataTable dt = new DataTable())
    {
        cmd = command;
        cmd.Connection = GetConnection();
        cmd.CommandText = spname;
        cmd.CommandType = CommandType.StoredProcedure;
        da.SelectCommand = cmd;
        da.Fill(dt);
        return (dt);
    }
}
Run Code Online (Sandbox Code Playgroud)

public DataTable ExectNonActQuery(string spname, SqlCommand command)
{
    DataTable dt = new DataTable();
    cmd = command;
    cmd.Connection = GetConnection();
    cmd.CommandText = spname;
    cmd.CommandType = CommandType.StoredProcedure;
    da.SelectCommand = cmd;
    da.Fill(dt);
    return (dt);
    }
}
Run Code Online (Sandbox Code Playgroud)

我实际上想要了解使用"使用"创建新对象的好处,而不是像这样直接创建它

DataTable dt = new DataTable();
Run Code Online (Sandbox Code Playgroud)

c# using

5
推荐指数
2
解决办法
429
查看次数

如何使用RegistryKey.SetValue

我正在尝试使用以下代码创建一个新的注册表项并收到此错误:

Cannot write to the registry key.
Run Code Online (Sandbox Code Playgroud)

我哪里错了?

var rs = new RegistrySecurity();
string user = Environment.UserDomainName + "\\" + Environment.UserName;
rs.AddAccessRule(new RegistryAccessRule(user,
                                        RegistryRights.WriteKey | RegistryRights.SetValue,
                                        InheritanceFlags.None,
                                        PropagationFlags.None,
                                        AccessControlType.Allow));
RegistryKey key;
key = Registry.LocalMachine.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System", RegistryKeyPermissionCheck.ReadSubTree, rs);
key.SetValue("kashif", 1, RegistryValueKind.DWord);
key.Close();
Run Code Online (Sandbox Code Playgroud)

c# registrykey

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

如何在c#中使用SQL Server存储过程数值参数

我在我的一个C#项目中使用以下SQL Server存储过程.

create procedure [dbo].[TestRecordSelect]
@OMarks numeric(3,1) output
as 
begin
select @OMarks = isnull(sum(cast(OMarks as numeric(3,1))),0) from Marks 
end
Run Code Online (Sandbox Code Playgroud)

当我在SQL Server中执行该过程时,我得到了所需的结果,即24.9.但是当我在我的C#项目中使用相同的过程并调用@OMarks如下

cmd.Parameters.Add("@OMarks", SqlDbType.Decimal).Direction = ParameterDirection.Output;
tbomarks.Text = cmd.Parameters["@OMarks"].Value.ToString();  
Run Code Online (Sandbox Code Playgroud)

我得到25而不是24.9这是四舍五入的数据.

我的问题是我不想得到25.我希望得到24.9的tbomarks

c# sql

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

如何在devexpress报告中传递参数

我在Windows应用程序中使用Devexpress XtraReport进行报告.我在我的XtraReport1中设置了一个参数param1,其中包含string作为类型,并使用以下代码传递参数.

private void button1_Click(object sender, EventArgs e)        
{
    XtraReport1 report = new XtraReport1();            
    report.Parameters["param1"].Value = "kashif";
    report.Print();
}
Run Code Online (Sandbox Code Playgroud)

当我按下按钮1时,下面的窗口出现并询问我已经在其中显示"kashif"的param1值,按钮"提交"和"重置"我的问题是:当我按下button1时我不希望打开这个窗口我想直接传递"kashif"而不提示我输入param1值. testimage

devexpress parameter-passing xtrareport

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

如何在devexpress xtrareport中计算条件总和

考虑我下面的XtraReport

在此处输入图片说明

预览时会生成以下输出。

在此处输入图片说明

请注意报告页脚中的总计分数之和,即125。我的问题是:如何计算结果为p的唯一字段之和。因此,在这种情况下,TotalMarks之和应为75。

c# xtrareport

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

泛型中的<in T>和<out T>是什么

我理解泛型中的"T"在这个例子中是什么:

public interface IEquatable<T>
{            
    bool Equals(T other);
}
Run Code Online (Sandbox Code Playgroud)

但是在这个例子中不要理解"在T中":

public interface IComparer<in T>
{            
    int Compare(T x, T y);
}
Run Code Online (Sandbox Code Playgroud)

和"out T"在这个例子中:

public interface IEnumerable<out T> : IEnumerable
{            
    IEnumerator<T> GetEnumerator();
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我理解这个吗?

c# generics

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

如何在GridControl中最适合(所有列)

如何在加载表单时最好地适应网格控件中的所有列.当我右键单击网格控件的标题时,我确实有一个如下图所示的按钮,但与此相反,我希望在加载表单时自动触发此事件.我不希望通过右键单击网格控件的标题来执行此操作,而不是单击最适合(所有列)按钮以最佳地适合所有列. 在此输入图像描述

c# devexpress gridcontrol

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

将数据从一个表单传递到另一个表单

我的一个项目中有两种形式.在form1中我有一个dataGridView和In form2我有4个TextBoxes.在Form1中,我想使用CellMouseClick事件从datagridview获取变量值,然后将其传递给Form2中的TextBox

我试过这个.

form1#它给我一个错误

public form(int id)
{
    int x;
    x = dataGridView1.CurrentRow.Cells[0].Value.ToString();
}
Run Code Online (Sandbox Code Playgroud)

以及我想在form2中做的事情

c# winforms

-4
推荐指数
1
解决办法
1万
查看次数

如何使用?:运营商

如何将以下代码转换为使用?:运算符..是否可能?

tbtotalamount.Text = string.Format("{0:n2}", dtl.Compute("sum(NetPay)", ""));
if (tbtotalamount.Text.Length == 0)
{
    tbtotalamount.Text = "0";
}
Run Code Online (Sandbox Code Playgroud)

c# string conditional-operator

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