c#程序中数据库操作语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#程序中数据库操作语句相关的知识,希望对你有一定的参考价值。
各位大侠好,用VS2005编的winform程序中,怎样写数据库的增删改查等语句?看了几个教程,写的语句看不懂,同时也容易报错.教程中的语句这样写的:
#region 添加
public int tb_EmpInfoAdd(tb_EmpInfo Empinfo)
int intFalg = 0;
try
string str_Add = "insert into tb_EmpInfo values( ";
str_Add+=" '"+Empinfo.intEmpId+"','"+Empinfo.strEmpName+"','"+Empinfo.strEmpLoginName+"',";
str_Add+=" '"+Empinfo.strEmpLoginPwd+"','"+Empinfo.intEmpSex+"','"+Empinfo.daEmpBirthday+"',";
str_Add+=" '"+Empinfo.strEmpDept+"','"+Empinfo.strEmpPost+"','"+Empinfo.strEmpPhone+"',";
str_Add+=" '"+Empinfo.strEmpPhoneM+"','"+Empinfo.strEmpAddress+"',";
str_Add+=""+Empinfo.intEmpFalg+")";
getSqlConnection getConnection = new getSqlConnection();
conn = getConnection.GetCon();
cmd = new SqlCommand(str_Add,conn);
intFalg = cmd.ExecuteNonQuery();
conn.Dispose();
return intFalg;
catch (Exception ee)
MessageBox.Show(ee.ToString());
return intFalg;
#endregion
那些引号弄不清是怎么回事,想把这些语句写到一个类中,该怎样写呢?
谢谢了!
首先感谢各位的帮助!尤其是给了那么多代码的老兄,不过惭愧的很,我是刚刚开始,还不懂代码的含义.我把那些代码先存下了,相信以后会对我有帮助的.
我从网上找的一个叫"《C#项目开发全程实录》.随书视频.源码"的视频教程,具体链接记不清了.刚开始学习,不知道该看些什么资料好,所以就先看这个,一点点跟着走吧.
我想向lee860807请教一下,关于引号的问题有些明白了,我做的这个练习中有两个数据,一个用户名,一个密码,插入的是仿照写的,
getSqlConnection getcon = new getSqlConnection();
SqlConnection scon = new SqlConnection();
scon = getcon.getconnection();
proMethod pro = new proMethod();
string stradd = "insert into Name values(";
stradd += "'" + txtName.Text + "','" + txtPWD.Text + "')";
这个没问题了,想自己写一下删除的代码,
string strdel = "delete from Name where "+txtName .Text+"=="+"UserName"+" and "+txtPWD .Text +"=="+"PassWord";
这样试了几次还是不行,报错说"在=附近有语法错误",能帮我看一下代码的问题出现在哪儿吗?
1.直接写个函数传参数
2.用存储过程(这里我就不给你加事务处理啦)
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[RoleOperate]
-- Add the parameters for the stored procedure here
@RoleId varchar(64),--角色ID
@RoleName varchar(20),--角色名称
@MaxYear int,--年限
@OperateType int,--操作类型1添加2修改3删除
@yxshuju varchar(MAX) output
AS
BEGIN
SET NOCOUNT ON;
declare @vroleid varchar(50)
declare @vrolename varchar(20) --版本
declare @vmaxyear int --MAC
SELECT @vroleid=isnull([RoleId],'') FROM [dbo].[Sys_Role] WHERE [RoleId] = @RoleId
if @vroleid<>''
begin
if (@OperateType=1)
begin
return 0;
end
else
begin
if (@OperateType=2)
begin
update [dbo].[Sys_Role] set RoleId=@RoleId,RoleName=@RoleName,MaxYear=@MaxYear where [RoleId]=@RoleId
set @yxshuju='2';
end
else
begin
delete from [dbo].[Sys_Role] where [RoleId]=@RoleId
set @yxshuju='3';
return 3;
end
end
end
else
begin
if (@OperateType=1)
begin
insert into[dbo].[Sys_Role](RoleId,RoleName,MaxYear)values(@RoleId,@RoleName,@MaxYear)
set @yxshuju='1';
return 1;
end
else
begin
if (@OperateType=2)
begin
set @yxshuju='2';
end
else
begin
set @yxshuju='3';
return 3;
end
end
end
END
SET ANSI_NULLS ON
调用函数:
public static int RoleOperate(string RoleId, string RoleName, Int32 MaxYear, Int32 OperateType)
Int32 rValue = 0;
try
SQLHelper.ModelSql.Command.CommandText = "RoleOperate";
SqlHelper.SQLHelper.ModelSql.Command.CommandType = CommandType.StoredProcedure;
SqlHelper.SQLHelper.ModelSql.Command.Parameters.Clear();
SqlParameter roleid = SQLHelper.ModelSql.Command.Parameters.Add("@RoleId", SqlDbType.VarChar, 50);
roleid.Value = RoleId;
SqlParameter rolename = SQLHelper.ModelSql.Command.Parameters.Add("@RoleName", SqlDbType.VarChar, 50);
rolename.Value = RoleName;
SqlParameter maxyear = SQLHelper.ModelSql.Command.Parameters.Add("@MaxYear", SqlDbType.Int);
maxyear.Value = MaxYear;
SqlParameter operatetype = SQLHelper.ModelSql.Command.Parameters.Add("@OperateType", SqlDbType.Int);
operatetype.Value = OperateType;
SqlParameter yxshuju = SQLHelper.ModelSql.Command.Parameters.Add("@yxshuju", SqlDbType.VarChar, 300);
yxshuju.Direction = ParameterDirection.Output;
SQLHelper.ModelSql.Connection.Open();
SQLHelper.ModelSql.Command.ExecuteNonQuery();
rValue = int.Parse(yxshuju.Value.ToString());
catch (Exception ex)
rValue = -1;
finally
SQLHelper.ModelSql.Connection.Close();
return rValue;
参考技术A 先说引号
上面这段代码对数据库进行了操作,那么就涉及到sql语句。C#操作数据库时的sql语句是一段传过去的字符串例如:select * from table1
你在查询分析器里可以直接敲这行语句,但是从c#中传过去的就是由引号括起来的字符串了也就是 string sql = "select * from table1";
那么我们如果想把C#里的一个变量a作为条件传到sql中就要这么写:
string a="table1";
string sql="select * from" + a; 这里a是变量,所以字符串拼接后的sql变量就为"select * from table1"了 同样的道理,在C#中逗号,空字符串""就要这么写才能和sql拼接起来本回答被提问者采纳 参考技术B 呵呵 写的是有点乱呀,,一看就知道代码不是你写的
很基础的 多看一看资料吧, 参考技术C 看的什么教程呢?能说一下代码来源吗?
以上是关于c#程序中数据库操作语句的主要内容,如果未能解决你的问题,请参考以下文章
C#能不能像操作SQL数据库那样使用sql语句对excel进行读取更新等操作?
在c#中如何通过GridView空间读取SQLserver中的数据,不用绑定数据源的那种,用代码实现数据库sql语句操作
C# 调用存储过程操作 OUTPUT参数和Return返回值