如何在c#中使用varchar数据类型?
我有这段代码,我想让它变为varchar而不是string。在c语言中,什么是合适的语法# 我有一个必须运行的查询,我在其中使用emri,并将其与我在mysql中创建的表中的一列进行比较。mysql中的列的类型为varchar(20)。当我执行我的代码时,它在我的查询中给出了一个错误,我猜可能是因为这个原因如何在c#中使用varchar数据类型?,c#,C#,我有这段代码,我想让它变为varchar而不是string。在c语言中,什么是合适的语法# 我有一个必须运行的查询,我在其中使用emri,并将其与我在mysql中创建的表中的一列进行比较。mysql中的列的类型为varchar(20)。当我执行我的代码时,它在我的查询中给出了一个错误,我猜可能是因为这个原因 I have this query string query = "IF NOT EXISTS(SELECT * FROM clienti WHERE CodCliente= " +
I have this query
string query = "IF NOT EXISTS(SELECT * FROM clienti WHERE CodCliente= " + id + " AND Nome = '" + emri + "' AND RagioneSociale=' " + ragSoc + " ' AND PartitaIVA=' " + piva + " ') INSERT INTO clienti VALUES(" + id + " ,' " + emri + " ',' " + ragSoc + " ',' " + piva + " ') else UPDATE clienti SET( " + id + " ,' " + emri + " ',' " + ragSoc + " ',' " + piva + " ')";
这给了我这个问题
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF NOT EXISTS(SELECT * FROM clienti WHERE CodCliente= 1 AND NomeCliente = 'Jo' at line 1
C#中没有
varchar
类型
varchar
基本上是一个字符串(显然在SQL中是可变长度的),因此您可以使用它。在.NET中没有名为“varchar”的类型,最接近的是string
我假设你问这个问题是有原因的,我猜你在问题中发布的代码有一些问题,所以让我试着猜一下这是什么,并告诉你如何解决它
首先,由于varchar
不存在,因此您发布的代码表面上看起来很好
但是,有一个问题,您没有显示什么是行
,但是如果它是常见的罪魁祸首之一,您将遇到数据库中null
标记的问题
数据库中相应列中的null
标记不会作为null
返回到.NET代码中,而是返回一个值
以下是我将要写的内容:
string emri;
if (row["Nome"] == DBNull.Value)
emri = null; // or String.Empty if you don't like null values
else
emri = Convert.ToString(row["Nome"]);
不,这是不正确的,当您通过更改VS中的调试设置来逐步完成一个过程时,如果您运行这样一个示例,其中表中设置了varchar值,也可以逐步完成SQL脚本过程
Try
{
using (SqlCommand cmd = new SqlCommand(examplestring, connection))
{
cmd.ExecutenonQuery();
}
}
catch
{
return;
}
现在在catch语句上放置一个断点,在示例字符串中,有一个名为“456789-1”的字符串,该字符串等于SQL表中的Itemnumber varchar(25)
捕获将获得以下错误SqlException已捕获-将数据类型varchar转换为数字时出错
现在,查询字符串被设置为字符串,因为这是SqlCommand工作的唯一方式在MSDN:System.Data.SqlClient.SqlCommand上查找它
是的,女士.NET中有varchar。你是什么意思?在.NET中没有名为“varchar”或类似的类型,等效的类型是
string
。您可以使用上面的类型。当获取要使用的varchar、nvarchar等值时,.NET中的字符串变量类型是完美的。如果你对你想做的事情给出更详细的评论,也许我们可以给你一个更好的答案。@sammy_winter我编辑了我问题的内容。
Try
{
using (SqlCommand cmd = new SqlCommand(examplestring, connection))
{
cmd.ExecutenonQuery();
}
}
catch
{
return;
}