C#中SQL语句的参数写法

  • MySql语句参数写法总结:
1.mysql数据库驱动有两种:mysql-connector-odbc和mysql-connector-net,
  前者不支持参数,后者支持,这是我测试的结果;
2.参数变量使用跟SqlServer一样,只需把@变为?,
  如,mysql中写为:insert into test values (?id,?title,?type,now())";
3.使用mysql-connector-net驱动很简单,到网上下载mysql-connector-net-5.2.3-src,
  解压后,把mysql.data.dll添加到项目的bin文件夹即可使用;
4.连接本机mysql数据库方法例子如下:
  string connStr = "server=localhost;user id=root; password=yourPassword;database=yourDatabase";
  MySqlConnection conn = new MySqlConnection(connStr);

下面附上测试通过的代码:
              string connStr = "server=localhost;user id=root; password=***; database=test";
            MySqlConnection conn = new MySqlConnection(connStr);
            if (conn != null)
                conn.Open();
            else
                return;     

                string SQL_INSERT_TOPIC = "insert into test values (null,?title,?type,now())";
              string PARM_TITLE = "?title";
              string PARM_TYPE = "?type";           
              MySqlParameter[] parms = new MySqlParameter[]
              {
                new MySqlParameter(PARM_TITLE,MySqlDbType.VarChar,80),
                new MySqlParameter(PARM_TYPE,MySqlDbType.VarChar,1)           
                };
                parms[0].Value = "welcome to beijing";
                parms[1].Value = "C";

                MySqlCommand cmd = new MySqlCommand();
                cmd.Connection = conn;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = SQL_INSERT_TOPIC;

                foreach (MySqlParameter pram in parms)
                  cmd.Parameters.Add(pram);

                cmd.ExecuteNonQuery();
                conn.Close();   

还可以这样写:

MySqlParameter name = new MySqlParameter("?name", txtName.Text);
command.Parameters.Add(name);
command.Parameters.AddWithValue("?sex", cmbSex.Text);



  • C#中SQL语句参数写法

leConnection oc=new OracleConnection("data source=osserver;User Id=****;password=**");

OracleCommand cmd=new OracleCommand("insert into cym1.uploadfile (filename,filecontent) values (:filename,:filecontent)",oc);

OracleParameter op1=new OracleParameter("filename",OracleType.VarChar,256);

OracleParameter op2=new OracleParameter("filecontent",OracleType.Blob,filedata.Length);

op1.Value=System.IO.Path.GetFileName(File1.Value);

cmd.Parameters.Add(op1);

op2.Value=filedata;

cmd.Parameters.Add(op2);

oc.Open();

cmd.ExecuteNonQuery();

oc.Close();

在ORACLE中,SQL语句参数是:+参数名,

insert into cym1.uploadfile (filename,filecontent) values (:filename,:filecontent)

在定义此参数的参数变量里面参数名不用写:

OracleParameter op1=new OracleParameter("filename",OracleType.VarChar,256);  

SqlConnection conn=new SqlConnection("data source=ccserver;user id=sa;password=****;initial catalog=cym1");

SqlCommand cmd =new SqlCommand("insert into uploadfile (filename) values (@filename)",conn);

SqlParameter sp=new SqlParameter("@filename",SqlDbType.VarChar,256);

sp.Value="1.jpg";

conn.Open();

cmd.ExecuteNonQuery();

conn.Close();

在SQLSERVER中,SQL语句参数是@+参数名,

insert into uploadfile (filename) values (@filename)

在定义此参数的参数变量里面参数要写@

SqlParameter sp=new SqlParameter("@filename",SqlDbType.VarChar,256);

 

string id = "zawp";
            
string name = "wwwwwww";
            
string strCon = @"Data Source=(local);Integrated Security=SSPI;Initial Catalog =northwind";

            
// 直接在sql语句中写添加的参数名,这里没有做任何类型验证,在定义参数时需要准确的类型定义和长度设置
            string delegeSql = "insert into Customers(CompanyName,CustomerID) values(@Name,@id)";

            SqlConnection strConn 
= new SqlConnection(strCon);
            strConn.Open();

            SqlDataAdapter thisAdapter 
= new SqlDataAdapter(delegeSql, strCon);
            SqlCommandBuilder thisBuilder 
= new SqlCommandBuilder(thisAdapter);
            Console.WriteLine(thisAdapter.SelectCommand.CommandText);


            SqlCommand strComm 
= new SqlCommand(delegeSql, strConn);

            
//生成一个名字为@Id的参数,在这里必须要准确设定参数类型和类型长度,并且必须以@开头表示是添加的参数
            
//注意可以用一个SqlParameter对像来添加多个参数,并且这里的参数定义、添加可以不安照sql语句里参数值的顺序(如果是存储过程的话,要注意顺序)
            SqlParameter para = new SqlParameter("@id", SqlDbType.NChar, 5);
            para.Value 
= id;
            strComm.Parameters.Add(para);

            para 
= new SqlParameter("@name", SqlDbType.NVarChar, 40);
            para.Value 
= name;
            strComm.Parameters.Add(para);



            strComm.ExecuteNonQuery();

            strConn.Close();

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值