我在SQLite中有几个表,我试图弄清楚如何重置自动递增的数据库字段.
我读到DELETE FROM tablename应删除所有内容并将自动增量字段重置为0,但是当我这样做时它只删除数据.插入新记录后,自动增量会在删除之前从中断处继续.
我的ident字段属性如下:
integerPRIMARY KEY,AUTOINCREMENT,UNIQUE我在SQLite Maestro中构建表并且我在SQLite Maestro中执行DELETE语句也一样重要吗?
任何帮助都会很棒.
我需要修改SQLite数据库中的列,但由于数据库已经在生产中,我必须以编程方式执行此操作.根据我的研究,我发现为了做到这一点,我必须做到以下几点.
对于应该相对容易的事情而言,这似乎是一项荒谬的工作量.有没有更简单的方法?我需要做的就是更改现有列的约束并为其指定默认值.
我想知道在SQLite中检查列和索引是否有一个很好的IF NOT EXISTS,或者我是否需要恢复整个数据库模式并对其进行验证?
我有一个ComboBox,我想绑定一个通用的List.任何人都可以看到为什么下面的代码不起作用?绑定源中包含数据,但它不会填充ComboBox数据源.
FillCbxProject(DownloadData Down)
{
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = Down.ProjectList;
cbxProjectd.DataSource = bindingSource;
}
Run Code Online (Sandbox Code Playgroud)
旁注:传递一个类的实例是不是很糟糕?
谢谢!
除了control.BringToFront()之外还有其他方法可以将控件带到前面吗?我在用户控件上有一系列标签,当我尝试将其中一个标签放在前面时,它无法正常工作.我甚至已经完成所有控件的循环并将它们全部发送回去,除了我感兴趣的那个并且它没有改变一件事.
以下是将标签添加到用户控件的方法
private void AddUserLabel()
{
UserLabel field = new UserLabel();
++fieldNumber;
field.Name = "field" + fieldNumber.ToString();
field.Top = field.FieldTop + fieldNumber;
field.Left = field.FieldLeft + fieldNumber;
field.Height = field.FieldHeight;
field.Width = field.FieldWidth;
field.RotationAngle = field.FieldRotation;
field.Barcode = field.BarCoded;
field.HumanReadable = field.HumanReadable;
field.Text = field.FieldText;
field.ForeColor = Color.Black;
field.MouseDown += new MouseEventHandler(label_MouseDown);
field.MouseUp += new MouseEventHandler(label_MouseUp);
field.MouseMove += new MouseEventHandler(label_MouseMove);
userContainer.Controls.Add(field);
SendLabelsToBack(); //Send All labels to back
userContainer.Controls[field.FieldName].BringToFront();
}
Run Code Online (Sandbox Code Playgroud)
这是将所有这些发送到后面的方法.
private void SendLabelsToBack()
{
foreach (UserLabel lbl in userContainer.Controls)
{ …Run Code Online (Sandbox Code Playgroud) 我有以下虚拟类结构,我试图找出如何从PeopleList中的类People的每个实例获取属性.我知道如何从People的单个实例中获取属性,但在我的生活中不能知道如何从PeopleList获取它.我确信这真的很简单,但是有人能指出我正确的方向吗?
public class Example
{
public class People
{
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
private int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
public People()
{
}
public People(string name, int age)
{
this._name = name;
this._age = age;
}
}
public class PeopleList : List<People>
{
public static void DoStuff()
{
PeopleList newList = new …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一些在运行时使用的对齐网格功能,但我遇到了捕捉部分的问题.我已成功在面板上绘制了一个虚线网格,但是当我向面板添加标签控件时,如何将标签的左上角捕捉到最近的点?
谢谢
我只有两个星期的WPF,所以这可能是一个微不足道的问题.我有一个集合"CellList",它有一些我希望绑定到的属性,ToolTip所以当我将鼠标悬停在CellList显示的当前实例的标签信息上时.我怎么做?我理解简单的绑定,这也许是简单的绑定,但我无法绕过它.下面是我的XAML标签.有人可以向我解释我是如何做到这一点的.
<HierarchicalDataTemplate>
<ListBox ItemsSource="{Binding CellList}">
<ListBox.ItemTemplate>
<DataTemplate>
<Label Content=" " Height="20" Width="15" Background="{Binding Path=ExptNameBkg, Converter={StaticResource ExptNameToBrushConverter}}" BorderBrush="Black" BorderThickness="1" >
</Label>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</HierarchicalDataTemplate>
Run Code Online (Sandbox Code Playgroud)
谢谢.
之前我没有使用过很多lambda表达式,我遇到了一个案例,我认为我可以使用一个.我有一个约19,000条记录的自定义列表,我需要查看列表中是否存在记录,因此不是编写一堆循环或使用linq来查看列表,我决定尝试这样做:
for (int i = MinX; i <= MaxX; ++i)
{
tempY = MinY;
while (tempY <= MaxY)
{
bool exists = myList.Exists(item => item.XCoord == i && item.YCoord == tempY);
++tempY;
}
}
Run Code Online (Sandbox Code Playgroud)
唯一的问题是执行需要大约9到11秒.我做错了什么,这只是我不应该使用这样的表达式的情况?
谢谢.
编辑:抱歉.我应该详细说明.我正在创建一个带有for和while循环的记录列表,并检查myList中是否存在该记录.这是我能想到的唯一方法.我会重新评估它,看看我带来了什么.
c# ×6
winforms ×4
sqlite ×3
data-binding ×2
alter-table ×1
binding ×1
controls ×1
database ×1
generics ×1
lambda ×1
properties ×1
reflection ×1
runtime ×1
sql ×1
tooltip ×1
wpf ×1