有符号的字段值如何插入到sqlserver数据库表中

gyl086 2019-09-27 10:27:24
在我的C#中有以下的几句代码,其中items[5]的值是这样的符号 R #X!P'P。

string text1 = string.Format("{0}\t{1}\t{2}\t{3}", inputDate,items[1], items[3], items[5]);

comm.CommandText = "insert into AAA(InputDate,Xuhao,miaoshu,jieguo) VALUES('" + inputDate + "','"+items[1]+"','" + items[3]
+ "','" + items[5] + "')";
comm.ExecuteNonQuery();

当运行到这里的时候就会提示如下错误


哪个朋友给帮忙解决一下,在此感谢。
...全文
92 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
二月十六 2019-09-28
  • 打赏
  • 举报
回复
用参数形式,不要这种拼接的,这种的存在sql注入,很容易让人攻击
gyl086 2019-09-28
  • 打赏
  • 举报
回复
引用 3 楼 吉普赛的歌 的回复:
写了一个基础的,但非常标准的示例, 你按这个去改就可以了:
using System;
using System.Data.SqlClient;

namespace ConsoleApp8
{
    class Program
    {
        static void Main(string[] args)
        {
            //连接串,你自己根据实际的改
            string connString = @"Data Source=.\sqlserver2014;Initial Catalog=MvcDemo;User ID=dev";
            string[] items = { "0","1","2","3","4","5","6","7" };

            string sql = "insert into AAA(InputDate,Xuhao,miaoshu,jieguo) VALUES(@InputDate, @Xuhao, @miaoshu, @jieguo)";
            SqlParameter[] spArr = new SqlParameter[]
            {
                new SqlParameter("@InputDate", DateTime.Now),
                new SqlParameter("@Xuhao", items[1]),
                new SqlParameter("@Xuhao", items[3]),
                new SqlParameter("@Xuhao", items[5]),
            };
            try
            {
                using (SqlConnection conn = new SqlConnection(connString))
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    cmd.Parameters.AddRange(spArr);
                    cmd.ExecuteNonQuery();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.Read();
        }
    }
}
万分感谢啦,马上学习
吉普赛的歌 2019-09-28
  • 打赏
  • 举报
回复
写了一个基础的,但非常标准的示例, 你按这个去改就可以了:
using System;
using System.Data.SqlClient;

namespace ConsoleApp8
{
    class Program
    {
        static void Main(string[] args)
        {
            //连接串,你自己根据实际的改
            string connString = @"Data Source=.\sqlserver2014;Initial Catalog=MvcDemo;User ID=dev";
            string[] items = { "0","1","2","3","4","5","6","7" };

            string sql = "insert into AAA(InputDate,Xuhao,miaoshu,jieguo) VALUES(@InputDate, @Xuhao, @miaoshu, @jieguo)";
            SqlParameter[] spArr = new SqlParameter[]
            {
                new SqlParameter("@InputDate", DateTime.Now),
                new SqlParameter("@Xuhao", items[1]),
                new SqlParameter("@Xuhao", items[3]),
                new SqlParameter("@Xuhao", items[5]),
            };
            try
            {
                using (SqlConnection conn = new SqlConnection(connString))
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand(sql, conn);
                    cmd.Parameters.AddRange(spArr);
                    cmd.ExecuteNonQuery();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.Read();
        }
    }
}
gyl086 2019-09-28
  • 打赏
  • 举报
回复
引用 1 楼 二月十六 的回复:
用参数形式,不要这种拼接的,这种的存在sql注入,很容易让人攻击
谢谢指点,我是刚刚学习,能给具体写一下吗?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧