C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户

哈喽,你好啊,我是雷工!前边学习了登录窗体的实现,接下来接着学习使用带参数的SQL语句编程添加账号的方法。以下为学习笔记。01 非带参数方法在DAL数据访问层编

今天给各位分享C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

以下为学习笔记。

01 非带参数方法

在DAL数据访问层编写AccountServer.cs类代码。

根据之前的练习,写成如下:

public int AddAccount(Account account){ //定义SQL语句字符串sql=’insert into Account(AccountName,AccountContent,originality,TypeId)’; sql +=#34;values(‘{account.AccountName}’,'{account.AccountContent}’,'{account.originality}’,'{account.TypeId}’)’; //执行SQL语句return SQLHelper.Update(sql);} 这种写法有两个问题:

问题一:单引号使用起来比较麻烦;

问题2:这种写法存在注入攻击的风险;

为了解决注入攻击的问题,微软有两种解决方案:

方案一:使用带参数的SQL语句;

方案2:使用存储过程方法;

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户

02 使用带参数语句

接下来将上述方法的写法修改为带参数的SQL语句的写法;

方法代码为:

public int AddAccount(Account account){ //定义SQL语句字符串sql=’insert into Account(AccountName,AccountContent,originality,TypeId)’; sql +=’值(@AccountName,@AccountContent,@originality,@TypeId)’ ; //封装SQL语句中的参数SqlParameter[] param=new SqlParameter[] {new SqlParameter(‘@AccountName’,account.AccountName),new SqlParameter(‘@AccountContent’,account.AccountContent),new SqlParameter(‘@原创性’,account.originality),new SqlParameter(‘@TypeId’,account.TypeId), }; //执行带参数的SQL语句return SQLHelper.Update(sql,param);}使用这种写法需要调整一般数据访问类SQLHelper中Update的写法。

03 优化Update方法

由于上面使用带参数的SQL语句进行编程,并且增加了数组参数param,因此优化思路是在原有方法的基础上增加SqlParameter[]param参数。

并且为了兼容性,该方法也可以不使用该参数,并将该参数赋值为null。

然后在方法内进行if判断即可。

优化后的方法代码如下:

用户评论

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
空谷幽兰

这篇文章讲解的很详细!让我终于明白如何用带参数的sql语句来添加账号了。之前一直搞不明白怎么避免注入问题,现在看来只要注意使用参数化查询就OK拉!感谢分享

    有10位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
不离我

这个C#知识账号管理系统感觉很棒啊!尤其是对于新手程序员来说,这篇文章简直是教科书级教程了,把每个步骤都清晰描述出来,真希望有更多类似的文章分享!

    有13位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
╭摇划花蜜的午后

话说,这篇博文说的代码示例都是基于什么数据库框架的? 我用的是Entity Framework, 这两种框架语法好像不太一样…

    有18位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
繁华若梦

C# 账号管理系统这个话题一直困扰我好久,总觉得自己的实现方法不够安全。终于有人分享了带参数SQL语句的使用方法,这种方式确实避免了注入风险,赞!

    有5位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
陌颜

我也试着自己去写C#的管理系统,遇到的问题太多了,这篇文章简直是救命啊!尤其是在使用SQL语句的时候,感觉很有效率!

    有11位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
留我一人

学习一下这个带参数的SQL语句方法吧!虽然之前一直在用其他的方式管理账号,不过这种方法更安全也更方便一些,以后我估计会经常用到…

    有11位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
_心抽搐到严重畸形っ°

这篇文章太棒了!我一直想找一个C#的账号管理系统的教程,没想到找到了这么详细的文章。而且讲解方法都很清晰易懂,非常感谢作者分享!

    有8位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
回忆未来

感觉这种带参数SQL语句的编程方式还是比较复杂一些,对于新手来说学习成本可能比较高…

    有17位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
一样剩余

看了这篇博文后,我更加明确了如何设计自己的C#账号管理系统。 真是受益匪浅!

    有17位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
暮染轻纱

虽然这个C#知识账号管理系统的文章写得不错,但是我觉得系统整体的架构的设计还需要进一步完善。 建议作者可以考虑添加更多模块化和可复用的功能代码。

    有18位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
安陌醉生

个人觉得带参数SQL语句确实更安全一些,但也需要注意数据类型匹配的问题,不然会报错……

    有10位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
寻鱼水之欢

我想问问作者,这个C#知识账号管理系统是否支持多平台? 我想在Linux环境下测试一下。

    有12位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
無極卍盜

其实使用ORM工具(比如 Entity Framework)操作数据库已经非常方便了,这种带参数SQL语句的方法感觉有点儿太ローレベル…

    有10位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
ゞ香草可樂ゞ草莓布丁

这篇文章真的帮到我了!我之前也遇到了账号管理系统的开发问题,现在终于找到了解决方案! 感谢作者的分享!

    有10位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
拥菢过后只剰凄凉

这个C#知识账号管理系统的架构设计比较简单,可以根据实际需求进行扩展和修改。不过对于大型系统来说,还需要考虑更多的安全性和性能方面的优化。

    有11位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
裸睡の鱼

这篇文章虽然讲解了代码实现过程,但是没有太多关于数据库设计的说明,我觉得对于初学者来说还不够全面。

    有6位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
拉扯

我更倾向于使用NoSQL数据库来开发账号管理系统,比如MongoDB,这样可以更加灵活和高效地存储用户数据。

    有18位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
病态的妖孽

C#语言本身就很灵活了,搭配这种带参数SQL语句编程方法,开发账号管理系统效率更高,安全性更好!

    有19位网友表示赞同!

C#知识账户管理系统:如何使用带参数的SQL语句以编程方式添加账户
昂贵的背影

我希望作者后续能分享一些关于安全防御、数据库优化以及系统部署等方面的知识,这样更能帮助我们全面理解和构建一个专业的C#账号管理系统。

    有9位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/121801.html

(0)
小su's avatar小su
上一篇 2024年9月1日 下午3:02
下一篇 2024年9月1日 下午3:05

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注