在这篇文章中,我们将为您详细介绍为什么插入表行的SQL查询不能正常工作?的内容,并且讨论关于为什么sql查询不到表格的信息的相关问题。此外,我们还会涉及一些关于bash–为什么带有反引号的if语句不能
在这篇文章中,我们将为您详细介绍为什么插入表行的SQL查询不能正常工作?的内容,并且讨论关于为什么sql查询不到表格的信息的相关问题。此外,我们还会涉及一些关于bash – 为什么带有反引号的if语句不能正常工作?、c – 为什么以下for循环不能正常工作?、c – 为什么我的包装器setenv()不能正常工作?、c – 为什么简单的内联汇编功能在GCC中不能正常工作?的知识,以帮助您更全面地了解这个主题。
本文目录一览:- 为什么插入表行的SQL查询不能正常工作?(为什么sql查询不到表格的信息)
- bash – 为什么带有反引号的if语句不能正常工作?
- c – 为什么以下for循环不能正常工作?
- c – 为什么我的包装器setenv()不能正常工作?
- c – 为什么简单的内联汇编功能在GCC中不能正常工作?
为什么插入表行的SQL查询不能正常工作?(为什么sql查询不到表格的信息)
我对C#和SQL相当陌生,因此这可能是一个非常容易回答的问题。
我正在尝试EventList
通过C#代码向表()添加一行。我已经打开了我的文件,SqlConnection
没有任何问题,而且我知道我已连接到正确的数据库,因为一些早期的代码正在查询其中一个表中的行,并且返回正确的键。
将行插入表中的SQL查询是这样的:
sqlCmd.CommandText =
"insert into EventList values ('" +
eventListIdentifier + "','" +
eventId.ToString() + "')";
sqlCmd.ExecuteNonQuery();
我正在使用SQL Server Management Studio
Express来查看数据库中的表。运行上述查询后,我右键单击该EventList
表,然后单击Open Table
。
我没有看到基于上述调用添加的新行。有什么想法我可能做错了吗?
更新1
我要插入的数据类型是:
eventListIdentifier (varchar(100),null)
eventId (varchar(8000),null)
我在SSMS中手动创建了相同的查询,如下所示:
insert into EventList(eventListIdentifier,eventId ) values('test','blah')
并说以下内容:
(1 row(s) affected)
但是,当我右键单击该表并将其打开时,没有任何行被添加到该表中。
更新2
输出System.Console.WriteLine(sqlCmd.CommandText);
由@billinkc的要求:
insert into EventList(eventListIdentifier,eventId) values ('7/09/2011 10:43:55 AM','7')
bash – 为什么带有反引号的if语句不能正常工作?
if [ `cp -i $files $destination` ];then echo "copy successful." else echo "copy was not done" fi
if cp -i "$file" "$destination"; then #...
Don’t forget the quotes.
你的版本:
if [ `cp -i $files $destination` ];then #..
将始终执行else分支.
shell中的if语句接受命令.
如果该命令成功(返回0,它被分配到$?),则条件成功.
如果你这样做[…];然后,它就像是一样
如果测试…;那么因为[]是test命令/ builtin的语法糖.
在您的情况下,您将cp操作的stdout *的结果作为参数传递给test
cp操作的标准输出将为空(cp通常只输出错误,然后输出到stderr).具有空参数列表的测试调用是错误的.该错误导致非零退出状态,因此您始终获得else分支.
* $()进程替换或反引号进程替换会破坏它们运行的命令的标准输出
c – 为什么以下for循环不能正常工作?
#include<stdio.h> int main() { char ch; for(ch='0';ch<=127;ch++) printf("%c %d",ch,ch); return 0; }
这怎么会在执行时变成无限循环.我想知道背后的确切原因吗?类型是从int转换为char到char的原因吗?
还有一个小问题
是否所有具有.c扩展名的文件都需要在所有文件中都有main()?
解决方法
for(ch='0';ch<=127;ch++)
char的int值可以是0到255或-128到127,具体取决于实现.
在您的情况下,char是一个带符号的char,它可以将范围的值保持为-128到127.因此,一旦值达到127,在您的情况下,它会溢出并且您将获得负值并且循环将永远持续,因为它的值将永远不会超过127.once它达到127,在下一次迭代中,该值将是-128,并且循环继续.
你可以使用unsigned char ch;
c – 为什么我的包装器setenv()不能正常工作?
void Class::mysetenv(char* a,char* b) { if(a==0 || b==0) return; int ret = setenv(strdup(a),strdup(b),1); printf("ret: %d %s %s\n",ret,a,b); }
解决方法
This function makes copies of the strings pointed to by name and value
因此,在将它们传递给它之前,您不必自己复制它们.
你是否在shell中执行这样的程序?
./a.out FOO 42
那么,将为如此执行的进程(a.out)设置环境变量,并将其继承到由它启动的进程.但它不会“冒泡”到执行a.out的shell中.这也是为什么诸如set或export之类的命令是shell内置而不是真正的程序的原因.在bash中结帐“帮助导出”.
c – 为什么简单的内联汇编功能在GCC中不能正常工作?
我很肯定这个问题与英特尔风格的装配无关.
int Convert(double value) { _asm { fld value push eax fistp dword ptr [esp] pop eax } // The returned value is insane }
解决方法
Fortunately,much more complex assembly functions work fine[…]
这些也是内联汇编功能吗?因为GCC使用completely different语法进行内联汇编程序.您可以使语法看起来更熟悉,请参阅wikipedia.
1 int Convert(double value) 2 { 3 int result; 4 __asm__ __volatile__ ( 5 "fist %0\n\t" 6 : "=m" (result) 7 : "t" (value) 8 ); 9 return result; 10 }
我是怎么做的. = m指定我们想要一个内存操作数来存储结果(我们不希望寄存器作为拳头不能用于那些). t指定值在堆栈顶部传递,这也确保了我们的正确清理.
编辑:
另一件要尝试的事情,假设gcc与xcode允许与msvc相同的内联汇编程序,是:
int Convert(double value) { int result; _asm { fld value push eax fistp dword ptr [esp] pop eax mov [result],eax } return result; }
这也应该关闭你可能会得到的关于丢失返回值的警告.可能只是因为允许您通过编写eax而不是msvc来从汇编程序块返回值更严格.
今天关于为什么插入表行的SQL查询不能正常工作?和为什么sql查询不到表格的信息的讲解已经结束,谢谢您的阅读,如果想了解更多关于bash – 为什么带有反引号的if语句不能正常工作?、c – 为什么以下for循环不能正常工作?、c – 为什么我的包装器setenv()不能正常工作?、c – 为什么简单的内联汇编功能在GCC中不能正常工作?的相关知识,请在本站搜索。
本文标签: