小编ova*_*ein的帖子

如何在带有参数的SQL查询中使用通配符

假设我有一个基本查询,如下所示:

 SELECT holiday_name
 FROM holiday
 WHERE holiday_name LIKE %Hallow%
Run Code Online (Sandbox Code Playgroud)

这在我的SQL查询窗格中执行正常并返回'Halloween'.当我尝试在我的代码中使用带有通配符'%'字符的参数时,会出现问题.

SqlConnection Connection = null;
SqlCommand Command = null;

string ConnectionString = ConfigurationManager.ConnectionStrings["SQLdb"].ConnectionString;
string CommandText = "SELECT holiday_name "
                   + "FROM holiday "
                   + "WHERE holiday_name LIKE %@name%";
Connection = new SqlConnection(ConnectionString);

try
{
      Connection.Open();
      Command = new SqlCommand(CommandText, Connection);
      Command.Parameters.Add(new SqlParameter("name", HolidayTextBox.Text));
      var results = Command.ExecuteScalar();
}

catch (Exception ex)
{   
     //error stuff here       
}

finally
{
    Command.Dispose();
    Connection.Close();
}
Run Code Online (Sandbox Code Playgroud)

这会引发错误的语法错误.我已经尝试将'%'移动到我的参数中

Command.Parameters.Add(new SqlParameter("%name%", HolidayTextBox.Text));
Run Code Online (Sandbox Code Playgroud)

但后来我收到一条错误,说我没有声明标量变量'@name'.那么,如何正确格式化通配符以包含在查询参数中?任何帮助表示赞赏!

c# sql

13
推荐指数
2
解决办法
2万
查看次数

在c#中投射与转换的适当时间

所以我一直认为c#中的转换和转换基本上是一样的:从一种数据类型到另一种数据类型的两种不同方式.显然这是不正确的,因为它们通常会输出不同的结果.

Convert.ToInt32(1.6)     //outputs 2
(Int32)1.6               //outputs 1


(DateTime)("10/29/2013")          //won't compile - cannot convert type 'string' to type 'system.date.time'
Convert.ToDateTime("10/29/2013")  //outputs 10/29/2013 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)
  • 我的问题是两者之间的主要区别是什么,为什么它们会返回不同的结果?
  • 使用其中一个的"适当"时间是多少?

就个人而言,我发现自己使用的Convert.To方法对我来说似乎更干净.我知道它也会抛出System.InvalidCastException.任何人都可以提供直截了当的解释吗?

c# casting

10
推荐指数
1
解决办法
517
查看次数

当我尝试压缩不同级别的 pdf 文件时,ITextSharp 返回相同大小的 pdf

我正在阅读 pdf 并使用 itextsharp 注入一些内容。结果byte[]与压缩级别一起传递给下面的方法。

public static byte[] method(byte[] pdf,int compressionlevel)
        {
            using (MemoryStream outputPdfStream1 = new MemoryStream())
            {
                //PdfReader reader1 = new PdfReader(pdf);
                //PdfStamper stamper1 = new PdfStamper(reader1, outputPdfStream1);
                //int level = (int)compressionlevel;
                //if (level <= 9)
                //    stamper1.Writer.CompressionLevel = (int)compressionlevel;
                //else
                //    stamper1.Writer.SetFullCompression();
                //stamper1.SetFullCompression();
                //stamper1.Close();
                //byte[] newfile = outputPdfStream1.ToArray();
                //return newfile;

                PdfReader reader = new PdfReader(pdf);
                PdfStamper stamper = new PdfStamper(reader, outputPdfStream1,PdfWriter.VERSION_1_5);
                int level = (int)compressionlevel;
                if (level <= 9)
                {
                   stamper.Writer.CompressionLevel = level;
                }
                else …
Run Code Online (Sandbox Code Playgroud)

c# compression pdf itextsharp

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×3

casting ×1

compression ×1

itextsharp ×1

pdf ×1

sql ×1