Tag: SQL服务器

在带有文本参数的存储过程中是否可以进行sql注入?

我在我的存储过程中使用这样的查询 SET @Statement = ‘SELECT Id,Title,Content,Status,ROW_NUMBER() OVER (ORDER BY ‘ + @Sort + ‘) AS StudentReport FROM YearBook WHERE ‘ + @Criteria + ‘) AS ArticleNumber WHERE StudentReport> ‘ + CONVERT(NVARCHAR, @StartRowIndex) + ‘ AND StudentReport<= (' + CONVERT(NVARCHAR, @StartRowIndex + @MaximumRows); 只是想知道是否可以对这个存储过程进行sql注入。 如果是的话,我该如何预防呢? 需要帮忙 !!!

使用文本框将数据插入数据库表

我正在尝试将数据插入表中,我看到的代码片段似乎对那个人有用,但对我来说! 我不知道我做错了什么,因为我不知道asp.net的数据库处理。 有人可以告诉我代码有什么问题吗? public partial class CompanyLogin : System.Web.UI.Page { protected void Button1_Click(object sender, EventArgs e) { OdbcConnection conn = new OdbcConnection(); conn.ConnectionString = @”.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\VCtemps.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True”; string sql = “insert into company values(@CompName, @BusinessType, @Pword)”; OdbcCommand cmd = new OdbcCommand(sql); string CompName = txtCompName.Text; string BusinessType = DropDownList1.Text; string Pword = txtPassword.Text; cmd.Connection […]

为什么使用SQL Serve Express在SQL Server管理工作室中没有显示添加的记录?

我正在为我的数字音乐文件测试大量记录。 我的添加例程是: foreach (AlbumModel albumModel in albs) { try { Album album = GetAlbum(albumModel); cmd.CommandText = @”insert into CDS (title,artist,cddbid,genre,tracks,notes) values (@title,@artist,@cddbid,@genre,@tracks,@notes)”; cmd.Parameters[“@title”].Value = album.Title; cmd.Parameters[“@artist”].Value = album.Artist; cmd.Parameters[“@cddbid”].Value = album.Id; cmd.Parameters[“@genre”].Value = album.Genre.First().ToString(); cmd.Parameters[“@tracks”].Value = album.Tracks.Count(); //cmd.Parameters[“@image”].Value = GetCover(album.Title); cmd.Parameters[“@notes”].Value = GetNotes(album); cmd.ExecuteNonQuery(); cmd.CommandText = @”Select @@Identity”; var retval = cmd.ExecuteScalar(); } catch (Exception […]

我如何使用System.Data.Sql.SqlDataSourceEnumerator类来了解可用的sql数据源……?

我如何使用System.Data.Sql.SqlDataSourceEnumerator类来了解可用的sql数据源……? 因为虽然我正在创建与sql server的连接,如果sql server还没有准备好,我们将得到exception…所以首先我想知道sql server是否已准备好接受请求…如何知道…

在访问以编程方式创建的数据库之前等待

我正在使用SqlClient在我的程序中创建一个数据库。 该应用程序需要定期创建一个新的数据库,但结构是相同的。 所以我在一个文件中有创建脚本,我一次执行一行。 当我完成后,我只是关闭它,因为应用程序的另一部分(使用SubSonic编写)将操纵新创建的数据库。 我遇到的问题是,即使在成功创建数据库之后,当我去访问它时,我得到一个exception,告诉我登录失败。 一段时间后,此访问成功。 我把它缩小到5秒 – 任何更少的东西导致失败,在5秒它工作正常。 下面的代码certificate了(以一种人为的方式),但它也向我certificate了SubSonic根本没有涉及这个问题。 这是我需要忍受的东西,还是有些东西我做得不对? 我的代码是: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Data; using System.Data.SqlClient; namespace SqlConnTest { class Program { static void Main(string[] args) { var x = new ContentDB(); if (x.IsNew) { x.Dispose(); System.Threading.Thread.Sleep(4500); Console.WriteLine(“Second time around”); x = new ContentDB(); } […]

如何从网站上传Excel文件并以编程方式将数据导入SQL Server?

我正在尝试做这样的事情: public void ImportClick(object sender, EventArgs e) //the button used after selecting the spreadsheet file { if (fileUpload.HasFile) //ASP.Net FileUpload control { if (fileUpload.FileName.EndsWith(“.xls”, StringComparison.OrdinalIgnoreCase) || fileUpload.FileName.EndsWith(“.xlsx”, StringComparison.OrdinalIgnoreCase)) { Excel sheet = new Excel(fileUpload.Open()); //not sure how to do this part using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings[“our_database”].ConnectionString)) { using (SqlCommand command = new SqlCommand(“INSERT INTO […]

从SQL分页行

我正在尝试完成我的新闻/博客ASP.net C#应用程序的编写,并且我在如何根据标记或关键字过滤项目后一次只返回10个项目。 这是我正在寻找的一个例子: 用户通过浏览到?tag = Pizza来查询sql 后端查找所有与查询字符串相等的标记(作为@参数发送)。 这部分我已经想通了。 现在我希望它从这个过滤后的语句中一次只返回10行。 当我没有过滤任何东西时,我很容易就能做到这一点: sqlCommand.CommandText = “SELECT * FROM (SELECT row_number() over(ORDER BY news_id) AS row_number, * FROM news) T WHERE row_number BETWEEN (SELECT rowcnt FROM sys.sysindexes WHERE (id = OBJECT_ID(‘news’)) AND (indid < 2))-(@start+10) AND (SELECT rowcnt FROM sys.sysindexes WHERE (id = OBJECT_ID('news')) AND (indid < 2))-(@start) ORDER […]

SQL Server和消息队列

我正在尝试建立一个可靠的消息服务,或者至少我会如何描述它。 这是我的问题:我有一个表,我在这个表中插入数据,我至少有两个应用程序从这个表中选择数据。 但是,我需要一种可靠的方法让两个不同的应用程序永远不会在任何给定时间选择相同的行。 我将如何编写一个事务或select语句,保证不选择与其他应用程序最近选择的行相同的行。 我不是SQL Server专家,但我希望有类似的东西。 从表中选择工作,这将为应用程序提供对某些行的独占访问权限。 然后,应用程序将处理这些行。 某些行被删除,一些行返回到数据库。 我主要担心的是,如果应用程序无法完成它的处理,SQL Server最终会超时并将签出的数据返回给应用程序数据池。

如何在SQL Server 2008中的特定列中存储列值?

基本上我正在绘制字段。 正如您在GridView 2看到的,我选择了特定的列名称。 让我们考虑第1条记录,即1 | id | Column0 1 | id | Column0 1 | id | Column0 ,对于id我选择了Column0 ,所以在数据库中我想在id列下存储列值1,2,3,4 .. 如下 id 1 2 3 所以我的问题是如何在特定列中存储列值,我在哪里动态传递列名,列值? 这是我做过的代码,我知道它错了。 protected void Button2_Click(object sender, EventArgs e) { DataTable dtMap = new DataTable(); dtMap.Columns.AddRange(new DataColumn[3] { new DataColumn(“Id”, typeof(int)), new DataColumn(“Source”, typeof(string)), new DataColumn(“Destination”, typeof(string)) }); foreach (GridViewRow […]

如何使用c#从后面的代码中找到SQL Server实例名称和服务器名称?

可能重复: SqlDataSourceEnumerator.Instance.GetDataSources()找不到本地SQL Server 2008实例 我使用下面的代码来获取本地机器中的所有实例名称和服务器名称,但它似乎只返回一个实例; 如何在我的本地机器上获取实例名称和服务器名称的所有列表? string myServer = Environment.MachineName; DataTable servers = SqlDataSourceEnumerator.Instance.GetDataSources(); for (int i = 0; i < servers.Rows.Count; i++) { if (myServer == servers.Rows[i]["ServerName"].ToString()) { if ((servers.Rows[i]["InstanceName"] as string) != null) { CmbServerName.Visibility = Visibility.Visible; CmbServerName.Items.Add(servers.Rows[i]["ServerName"] + "\\" + servers.Rows[i]["InstanceName"]); } else { CmbServerName.Visibility = Visibility.Visible; CmbServerName.Items.Add(servers.Rows[i]["ServerName"]); } } } 提前致谢!