在FeeSQL Server 2012中的"ReceiptNo"列中的一个表中,数据库标识增量突然开始跳转到100而不是1,具体取决于以下两点.
如果它是1205446,则跳转到1206306,如果是1206321,则跳转到1207306,如果是1207314,则跳到1208306.我想让你注意的是,最后三位数保持不变,即每当跳跃时为306如下图所示.
我重新启动计算机时会出现此问题

在我的一个项目中,我正在使用以下两种方法.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等希望它现在已经清除,为什么我想要这个?
请看下面的图片

当我使用以下代码单击一个单元格时,我在图中显示的三个文本框中获得所选行值.
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控件中做同样的事情?
我想了解它们之间的区别
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) 我正在尝试使用以下代码创建一个新的注册表项并收到此错误:
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#项目中使用以下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
我在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值.

考虑我下面的XtraReport

预览时会生成以下输出。

请注意报告页脚中的总计分数之和,即125。我的问题是:如何计算结果为p的唯一字段之和。因此,在这种情况下,TotalMarks之和应为75。
我理解泛型中的"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)
有人可以帮我理解这个吗?
如何在加载表单时最好地适应网格控件中的所有列.当我右键单击网格控件的标题时,我确实有一个如下图所示的按钮,但与此相反,我希望在加载表单时自动触发此事件.我不希望通过右键单击网格控件的标题来执行此操作,而不是单击最适合(所有列)按钮以最佳地适合所有列.

我的一个项目中有两种形式.在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中做的事情
如何将以下代码转换为使用?:运算符..是否可能?
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# ×10
devexpress ×3
generics ×2
sql ×2
winforms ×2
xtrareport ×2
gridcontrol ×1
registrykey ×1
sql-server ×1
string ×1
using ×1
xtragrid ×1