我希望能够使用"替换为"语句更新相同模式的表.最后,我需要能够使用可能已更改的值更新大型表.
这是我用来开始的查询:
REPLACE INTO table_name
(visual, inspection_status, inspector_name, gelpak_name, gelpak_location),
VALUES (3, 'Partially Inspected', 'Me', 'GP1234', 'A01');
Run Code Online (Sandbox Code Playgroud)
我不明白的是数据库引擎如何知道什么是重复行而哪些不是?这些数据非常重要,我不能冒数据被破坏的风险.它是否像"如果列出的所有列具有相同的值,它是重复的行"一样简单?
我只是想弄清楚这样做的有效方法,所以我可以在一分钟内更新> 45,000行.
我正在尝试为评论和回复面板创建一个两级UITableView实现.第一级包含所有顶级注释,如果有对该注释的回复,则会有一个指示符.当您点击顶级注释单元格时,该面板会将新的UITableView动画显示为视图.第一个单元格是用户点击的下方和下方的注释,该注释是针对该注释的每个回复的单元格.
我完成了使用两个不同的UITableViews和两个不同的UITableViewSources(但它们共享相同的基类).当用户点击顶级注释时,管理表的控制器(CommentPanelViewController)将旧视图(顶级注释)设置为不可见,并且新视图(回复)即将显示.
问题:
当我点击顶级评论时,只有它的指示器显示出来.所有其他回复显示正常,但顶级评论没有文字,没有作者,也没有时间戳.
为了使事情简洁易懂,我将发布必要的代码.顶级注释视图工作正常,只有回复视图有问题所以我们将从那里开始:
CommentSource - 基表源
public abstract class CommentSource : UITableViewSource
{
protected List<Comment> _data;
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
var comment = _data[indexPath.Row];
var cell = tableView.DequeueReusableCell(CellId)
as CommentCell ?? new CommentCell(new NSString("CellId"), CommentLineCount,
comment.Replies != null && comment.Replies.Count > 0);
cell.SelectionStyle = UITableViewCellSelectionStyle.None;
cell.LayoutMargins = UIEdgeInsets.Zero;
cell.SeparatorInset = UIEdgeInsets.Zero;
cell.SetNeedsUpdateConstraints();
cell.UpdateConstraintsIfNeeded();
cell.UpdateCell(comment);
cell.DrawIndicator(comment);
DrawAccessories(comment, cell);
return cell;
}
protected virtual void DrawAccessories(Comment comment, CommentCell cell) { }
protected abstract int CommentLineCount { …Run Code Online (Sandbox Code Playgroud) 我创建了一个名为elements的JavaScript对象数组并循环遍历它,以便在画布上绘制每个对象以及将一些事件处理程序连接到它.但是,我收到一个错误说明
'Uncaught TypeError: elements[i].addEventListener is not a function'
Run Code Online (Sandbox Code Playgroud)
这是代码:
$(document).ready(onDocumentReady);
function onDocumentReady() {
var COLOR_NORMAL = '#005A84';
var COLOR_SELECTED = '#00F2F2';
var COLOR_MOUSEOVER = '#5BA621';
var canvas = document.getElementById("mapCanvas");
var context = canvas.getContext('2d');
var data = @Html.Raw(Json.Encode(Model.DiePrintList));
var elem =
canvas,
left = elem.offsetLeft,
top = elem.offsetTop,
context = elem.getContext('2d'),
elements = [];
for (var i = 0; i < data.length; i++) {
elements.push({
color: '#0489B1',
width: 15,
height: 15,
row: data[i].Row,
col: data[i].Col,
top: data[i].Row * 20,
left: data[i].Col …Run Code Online (Sandbox Code Playgroud) 我有一个主要活动,里面有一个ViewPager.ViewPager使用FragmentPagerAdapter将Fragments放入ViewPager.所有片段都是一个PdfAssetFragment,它包含一个PDFView(Joan Zapata)和我写的自定义视图,名为DrawingView(允许用户在屏幕上绘图).当我调用更改当前在页面中的DrawingView的属性时(ViewPager中的每个片段都有自己的PDFView和DrawingView),似乎没有任何变化.
这是PdfAssetFragment继承的抽象类(这是在这里,所以我可以轻松地扩展类以允许将不同的媒体类型放在ViewPager中):
public abstract class AnnotationFragment : Fragment
{
protected View _view;
protected DrawingView _drawingView;
/// <summary>
/// ID of the fragment layout to inflate
/// </summary>
protected abstract int ViewId { get; }
/// <summary>
/// Sets up the view after it has been inflated
/// </summary>
protected abstract void SetupView();
/// <summary>
/// Creates and instantiates the view
/// </summary>
/// <param name="inflater">Inflate to inflate the view</param>
/// <param name="container">Container to inflate the view into</param>
/// <param …Run Code Online (Sandbox Code Playgroud) 我正在尝试将MySqlDateTime对象与另一个MySqlDateTime对象进行比较,每个对象来自两个不同的表.我试图在LINQ查询中做所有这些,例如:
var prodRowFindQuery =
from x in production.AsEnumerable()
where x.Field<MySqlDateTime>("date") == row.Field<MySqlDateTime>("date") &&
x.Field<String>("device_id3") == row.Field<String>("device_id3")
select x;
Run Code Online (Sandbox Code Playgroud)
这给了我一个编译器错误:
运算符'=='不能应用于'MySql.Data.Types.MySqlDateTime'和'MySql.Data.Types.MySqlDateTime'类型的操作数
那么我试试这个:
var prodRowFindQuery =
from x in production.AsEnumerable()
where x.Field<MySqlDateTime>("date").ToString() == row.Field<MySqlDateTime>("date").ToString() &&
x.Field<String>("device_id3") == row.Field<String>("device_id3")
select x;
Run Code Online (Sandbox Code Playgroud)
现在它编译,但我得到一个运行时错误:
指定演员表无效.
堆栈跟踪:
IthacaDbTransferUtil.exe!IthacaDbTransferUtil.DataTableComparer.CompareTables.AnonymousMethod__0(System.Data.DataRow x = {System.Data.DataRow}) Line 34 C#
System.Core.dll!System.Linq.Enumerable.WhereEnumerableIterator<System.Data.DataRow>.MoveNext() + 0x9c bytes
IthacaDbTransferUtil.exe!IthacaDbTransferUtil.DataTableComparer.CompareTables(System.Data.DataTable aggregate = {System.Data.DataTable}, System.Data.DataTable production = {System.Data.DataTable}) Line 39 + 0x8b bytes C#
IthacaDbTransferUtil.exe!IthacaDbTransferUtil.DbTransferWindowViewModel.CopyTestReliability() Line 177 + 0x94 bytes C#
IthacaDbTransferUtil.exe!IthacaDbTransferUtil.DelegateCommand.Execute() Line 78 + 0x1f bytes C# …Run Code Online (Sandbox Code Playgroud) 我试图在MenuAdapter课堂上给视图充气时不断收到InflateException .我已经在try-catch块中包含了麻烦的代码并得到错误消息:
链接到整个项目:
https://docs.google.com/file/d/0B2Iwl4UysxOMa3E5a1l2SHZwOG8/edit?usp=sharing
二进制XML文件行#1:错误类膨胀
这是代码:
package com.example.sidemenututorial;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MenuListAdapter extends BaseAdapter {
// Fields -----------------------------------------------------------------
private Context context;
private String[] titles;
private String[] subtitles;
private int[] icons;
private LayoutInflater inflater;
// Constructor ------------------------------------------------------------
public MenuListAdapter(
Context context,
String[] titles,
String[] subtitles,
int[] icons){
this.context = context;
this.titles = titles;
this.subtitles = subtitles;
this.icons = icons;
inflater = (LayoutInflater)context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
}
// Accessors …Run Code Online (Sandbox Code Playgroud) java android android-fragments layout-inflater navigation-drawer
我有一个查询DataTable的LINQ查询。在DataTable中,该字段是一个字符串,我基本上需要将其与整数进行比较:
if ((electrical >= 100 && electrical <= 135) || electrical == 19)
{
// The device passes
}
Run Code Online (Sandbox Code Playgroud)
问题是,我正在这样尝试在LINQ中这样做:
var eGoodCountQuery =
from row in singulationOne.Table.AsEnumerable()
where (Int32.Parse(row.Field<String>("electrical")) >= 100 &&
Int32.Parse(row.Field<String>("electrical")) <= 135) &&
Int32.Parse(row.Field<String>("electrical")) != 19 &&
row.Field<String>("print") == printName
select row;
Run Code Online (Sandbox Code Playgroud)
我不断收到异常:
输入的字符串格式不正确
主要问题出现在电气==“”时
所以我有两个具有相同模式但数据不同的DataTable.我想将两个表连接在一起,其中两个字段,id3和print相同.我如何在LINQ中写这个?
现在,这工作并没有给出编译器错误:
var singOneJoin =
from prod in singOneProd.Table.AsEnumerable()
join agg in singOneAgg.Table.AsEnumerable()
on prod.Field<string>("print") equals agg.Field<string>("print")
select new
{
print = prod.Field<string>("print")
};
Run Code Online (Sandbox Code Playgroud)
但我真正想要的是:
var singOneJoin =
from prod in singOneProd.Table.AsEnumerable()
join agg in singOneAgg.Table.AsEnumerable()
on (prod.Field<string>("print") equals agg.Field<string>("print") &&
prod.Field<Int32>("id3") equals agg.Field<Int32><("id3"))
select new
{
print = prod.Field<string>("print")
};
Run Code Online (Sandbox Code Playgroud)
但这给了我编译错误.
如何在print和id3列上将这两个表连接在一起?
问候,
凯尔
我有一个名为“WaferMap”的类,它在自己的画布上绘制矩形。主视图中还有一个画布。我希望能够将 WaferMap 类中画布的内容绑定到 GUI 上的画布。做这个的最好方式是什么?
我现在的做法是在 WaferMap 类中创建一个画布,然后使用画布的 ContentPresenter 属性将其绑定到 GUI 上的画布。
WaferMap 类:
public class WaferMap : ViewModelBase
{
#region Fields
protected const int rows = 23;
protected const int cols = 23;
protected int currentRow;
protected int currentCol;
protected DiePrint diePrint;
protected List<BlueTape> blueTapeList;
protected Canvas canvasToMap;
#endregion
#region Constructor
public WaferMap(List<BlueTape> btList)
{
blueTapeList = new List<BlueTape>();
blueTapeList = btList;
}
#endregion
#region Properties
public Canvas WaferMapCanvas
{
get
{
return canvasToMap;
}
}
public List<BlueTape> BlueTapeList …Run Code Online (Sandbox Code Playgroud) 我在内存中有一个数据表,看起来像这样:
Tape Mask Count
BT1 DML69 3452
BT2 DML69 1569
BT2 DML87 2745
BT3 DML69 3215
BT3 DML87 1542
BT4 DML87 3214
BT5 DML69 2132
BT5 DML87 1241
Run Code Online (Sandbox Code Playgroud)
我需要一个LINQ查询,它将返回每个磁带的数据行,每个磁带一个结果,包括只有最大计数的掩码.即
Tape Mask Count
BT1 DML69 3452
BT2 DML87 2745
BT3 DML69 3215
BT4 DML87 3214
BT5 DML69 2132
Run Code Online (Sandbox Code Playgroud)
我尝试过几种不同的方法,都没有成功.这是我最近的尝试:
foreach (string tape in singOne.GetDistinctTapes(
converter.ConvertProcessesIDToSingOneID(selectedWafer)))
{
var tapeMaskQuery =
from row in tempTable.AsEnumerable()
where row.Field<string>("location1") == tape
select row;
if (tapeMaskQuery.Count() == 1)
{
tapeMaskCountTable.Rows.Add(tapeMaskQuery.ElementAt(0));
}
else
{
var maxMaskQuery = …Run Code Online (Sandbox Code Playgroud) 我通过创建自己的自定义控件模板在 WPF 中设计了自己的文本框。但是,我似乎无法让插入符号出现。
这是我的文本框样式:
<Style TargetType="{x:Type TextBox}">
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Setter Property="AllowDrop" Value="True"/>
<Setter Property="TextBlock.Foreground" Value="DeepSkyBlue"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border
Name="border"
CornerRadius="0"
Padding="2"
BorderThickness="1"
BorderBrush="DeepSkyBlue">
<ContentPresenter
HorizontalAlignment="Left"
VerticalAlignment="Top"
Content="{TemplateBinding Text}"
Name="content"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="True">
<Setter Property="Background" Value="MidnightBlue"/>
<Setter Property="BorderBrush" Value="DeepSkyBlue"/>
<Setter Property="Foreground" Value="DeepSkyBlue"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
那么我怎样才能让我的插入符号出现呢?我希望它是 MidnightBlue,以便在 DeepSkyBlue 背景上可见。
我有一个名为waferMap的对象,其中包含bluetapes列表; 每个bluetape都包含一个模具打印列表,每个模具打印都有一个名称.我需要能够从bluetape列表中提取基于其名称的骰子打印,如果它不存在,我需要它返回null,而不是崩溃应用程序.
总结层次结构:
WaferMap has a List<BlueTape>
BlueTape has a List<DiePrint>
DiePrint has name (of type string)
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止:
print = waferMap.BluetapeList
.Select(x => x.DiePrintList)
.First(x => x.Contains(print, new DiePrint.Comparer()))
.First(x => x.Name == print.Name);
Run Code Online (Sandbox Code Playgroud)
这是DiePrint类的比较器对象:
public class Comparer : IEqualityComparer<DiePrint>
{
public bool Equals(DiePrint x, DiePrint y) { return x.Name == y.Name; }
public int GetHashCode(DiePrint obj) { return obj.Name.GetHashCode(); }
}
Run Code Online (Sandbox Code Playgroud)
现在它总是因某种原因找到一个匹配,即使任何bluetapes模具打印列表中没有模具打印存在具有适当的名称.
c# ×8
.net ×6
linq ×4
android ×2
casting ×2
datatable ×2
mysql ×2
wpf ×2
xamarin ×2
canvas ×1
data-binding ×1
database ×1
datetime ×1
graphics ×1
html ×1
ios ×1
java ×1
javascript ×1
join ×1
list ×1
mapping ×1
max ×1
object ×1
replace ×1
sql ×1
string ×1
styles ×1
uitableview ×1
wpf-controls ×1