假设我有一个基本查询,如下所示:
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#中的转换和转换基本上是一样的:从一种数据类型到另一种数据类型的两种不同方式.显然这是不正确的,因为它们通常会输出不同的结果.
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.任何人都可以提供直截了当的解释吗?
我正在阅读 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)