我有两张桌子.一个是简单的字符串/ ID查找:
StrTable:
str_key String 0 'a' 1 'b'
字符串是唯一的.另一个更复杂,包括共享的string_id
ValTable:
str_key other_key val 0 0 1.234 0 1 1.567 1 0 1.890
现在,我想对ValTable进行更新,使用我查找的字符串通过StrTable获取str_key.简单的更新将是:
UPDATE ValTable SET val = 2.124 WHERE str_key = 0 AND other_key = 1 LIMIT 1
IF @@ROWCOUNT=0 INSERT INTO ValTable VALUES (0,1,2.124);
Run Code Online (Sandbox Code Playgroud)
那么如何修改它以包括用一些字符串'a'查找str_key?我假设我需要加入,但我从未在更新中加入.或者我可以在where子句中添加更多内容吗?
我在C#中有以下结构:
[StructLayoutAttribute(LayoutKind.Sequential)]
public struct RECORD
{
public uint m1;
public uint m2;
public uint m3;
}
Run Code Online (Sandbox Code Playgroud)
我还需要将这些结构的数组(固定长度)传递给本机代码,后者将一些数据写入这些结构.该数组在C#中分配并传递给C dll.我将导入的函数声明为:
[DllImport("marshall.dll", CallingConvention = CallingConvention.Cdecl)]
private static extern void doIt(RECORD[] dataRecord);
Run Code Online (Sandbox Code Playgroud)
但我没有得到任何数据.我已经尝试过PInvoke Interop助手.我应该在这里使用IntPtr吗?有任何想法吗?
编辑:
以下是调用本机函数的C#代码:
RECORD[] rec = new RECORD[256];
doIt(rec);
// values of rec are all zero here
Run Code Online (Sandbox Code Playgroud)
这是C函数:
int doIt(RECORD* rec)
{
// deref pointer and write some data
}
Run Code Online (Sandbox Code Playgroud) 有什么区别
public function Foo(ref Bar bar)
{
bar.Prop = 1;
}
public function Foo(Bar bar)
{
bar.Prop = 1;
}
Run Code Online (Sandbox Code Playgroud)
基本上什么是"参考"的重点.总是通过引用不是一个对象?
是否可以使用C#中的显式类型转换将基类对象分配给派生类引用?
我试过它,它会产生运行时错误.
有没有人建议如何创建一个可以根据窗口大小改变大小的gui.与Media Center的工作方式类似.如果媒体中心最大化,则字体等的大小会增加.所以gui总是"统一"?
我的印象是,在.NET世界中,并不需要像Maven这样的工具.
我知道有Byldan和NMaven(它还活着吗?),但我还没有看到使用它们的真实项目.
同样在我工作的大多数.NET项目中,从未有人表示需要类似Maven的工具.Maven maven正在解决的问题(自动依赖解析,基于约定的构建结构......)似乎在.NET中并不那么重要.
我的看法是否正确?
为什么会这样?
人们在.NET中真正使用的是什么?根本没有自动依赖解决方案?
他们在编写自己的构建工具吗?
是否有人使用Maven来管理他们的.NET项目?这是一个不错的选择吗?
你有什么经历?
我有一个静态类 (DataFormSubject),它包含一个通用 List 对象,如下所示:
private static List<DataForm> dataForms = new List<DataForm>();
Run Code Online (Sandbox Code Playgroud)
当列表更新时,需要告知依赖此列表的其他类,因此我创建了一个自定义事件,以及在添加或删除项目时可以触发的关联方法,如下所示:
public delegate void DataFormsUpdatedHandler(object sender);
public static event DataFormsUpdatedHandler DataFormsUpdatedEvent;
public static void AddDataForm(DataForm df)
{
dataForms.Add(df);
if (DataFormsUpdatedEvent != null)
DataFormsUpdatedEvent(df);
}
public static void RemoveDataForm(DataForm df)
{
dataForms.Remove(df);
if (DataFormsUpdatedEvent != null)
DataFormsUpdatedEvent(df);
}
Run Code Online (Sandbox Code Playgroud)
该列表可通过属性从静态类获取,如下所示:
public static List<DataForm> DataForms
{
get { return dataForms; }
//set { dataForms = value; }
}
Run Code Online (Sandbox Code Playgroud)
但这里的问题是,客户端现在可以通过访问属性并在类上直接添加或删除来绕过更新事件!例如
DataFormSubject.DataForms.Add(new DataForm);
Run Code Online (Sandbox Code Playgroud)
我怎样才能防止这种情况,或者有更好的方法来实现我想要的?理想情况下,我想要的是观察者可以订阅的 List 类上的更新事件!
我将C++动态链接库转换为静态库只是为了获得更多知识.我的问题是如何使用.obj文件用C#express/MS visual studio编译这两个项目?
我在页面上有iframe,iframe和父页面在不同的域中,父页面上的javascript代码可以访问这个iframe中的元素吗?
如何获取在python中导入的模块的文件路径.我正在使用Linux(如果重要的话).
例如:如果我在我的家庭目录并导入一个模块,它应该返回我的主目录的完整路径.