Tag: SQL服务器

是否可以在异步中提交/回滚SqlTransaction?

我正在尝试在异步中提交/回滚SqlTransaction 。 但它似乎不支持异步。 有没有办法让它成为异步而不使用原始SQL来启动事务?

区分C#SqlConnection中具有相同名称的2个SQL列名

我在SQL查询中使用不同的别名两次加入相同的2个表,使我能够选择2个(可能但不总是)不同的地址ID,然后链接到地址表。 SELECT C.court_id, C.court_name, CA.court_address, CA2.court_address… FROM court C ” + JOIN court_addr CA ON C.court_addr_id = CA.court_addr_id ” + JOIN court_addr CA2 ON C.court_postal_addr_id = CA2.court_addr_id ” + … 现在,当尝试使用ASP.NET C#输出此查询的结果时,我不确定如何指定Response.Write中的两个地址中的哪一个。 将别名放在列名称前面(如下面的第4个字符串值)不起作用并引发错误。 有没有办法区分C#中的两个地址,尽管它们在数据库中都有相同的列名? while (myDataReader.Read()) { string court_id = myDataReader[“court_id”].ToString(); string court_name = myDataReader[“court_name”].ToString(); string court_address = myDataReader[“court_address”].ToString(); string court_postal_address = myDataReader[“CA2.court_address”].ToString(); etc….. 提前感谢你

从sql server下载varbinary数据

我有一个带有Varbinary(Max)列的SQL Server表,它基本上是压缩数据。 我的页面允许用户下载此数据(在通常的用户身份validation之后)。 过去工作正常,数据量较小,但现在随着时间的推移,数据也越来越大。 在“保存”对话框出现之前,我基本上面临很多问题等待时间。 码: while (reader.Read()) { Response.Buffer = false; Response.Charset = “”; Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.ContentType = “application/gzip”; Response.AddHeader(“content-disposition”, “attachment;filename=” + “vbet_1_1.sdf.gz”); byte[] bytes = (Byte[])reader[“backupdata”]; // STUCK HERE Response.BinaryWrite(bytes); Response.Flush(); Response.End(); } 在调试器中,我可以看到 byte[] bytes = (Byte[])reader[“backupdata”]; 是滞后的地方。 我的平台是ASP.Net,包含.NET Framework 4.0,SQL Server 2008,C#codebehind

VS重启后SQL更改消失

我正在学习C#和SQL交互的基础知识,我有这样的forms: 它显示了使用VS 2013 DB构建器制作的预填充数据库中的值,并且所有内容在上部按钮上都能正常工作 。 这是我的表: 问题: 单击“添加”时,文本框将被清除; 接下来,填写文本框,当我单击Save时,记录显然已添加到DB(或至少添加到DataSet?),因为它给了我一条成功的消息,并在我使用上方按钮浏览DB时显示; 如果我关闭并重新打开我的应用程序(不关闭VS) ,我插入的记录仍然存在 。 但如果我关闭并重新打开VS并再次运行我的应用程序,我输入的记录就不见了 。 此外,如果我没有关闭VS,如果我转到服务器资源管理器(VS左窗格),请单击我的表=>显示表数据,新记录永远不会出现。 这是Form1.cs代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace SQLtest { /// /// A class that constains our form /// public partial class Form1 : Form { // variables […]

什么在DBNull

我有一个存储过程,其参数可以为十进制列。 我写的方法需要一个Dictionary来传递参数名称和值。 但是,当我这样做时,我将reflection用于GetValue : collection.Add(model.Name, DBNull.Value.ToString()); 实质上,所有DBNull.Value返回都是String.Empty 。 那么如何确保将null正确传递给SQL Server? 否则会抛出exception,因为列数据类型无效。 文档说明,使用ToString它将返回String.Empty 。 DBNull是一个单例类,这意味着只能存在此类的此实例。 如果数据库字段缺少数据,则可以使用DBNull.Value属性将DBNull对象值显式分配给该字段。 但是,大多数数据提供商都会自动执 要评估数据库字段以确定它们的值是否为DBNull,可以将字段值传递给DBNull.Value.Equals方法。 但是,很少使用此方法,因为有许多其他方法可以评估数据库字段以查找缺失的数据。 这些包括Visual Basic IsDBNull函数,Convert.IsDBNull方法,DataTableReader.IsDBNull方法,IDataRecord.IsDBNull方法以及其他几种方法。 这将以下列方式添加到数据库中: command.Parameters.AddWithValue(parameter.Key, parameter.Value); 传统的Ado.Net SqlDataReader 。

C#中的StoredProcedure,从文本框传递参数

我有一个非常简单的页面,想知道如何将文本框中的数据传递到我的程序中。 我将新的参数从后面的代码传递到DB,我有一个新的代码页面 <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="” SelectCommand=”SELECT * FROM [Employee]”> 和aspx代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; using System.Configuration; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } string connectionString = ConfigurationManager.ConnectionStrings[“TicketsConnectionString”].ConnectionString; protected void Button1_Click(object sender, EventArgs e) { […]

在具有标识主键的sql数据库中添加一行

我有一个简单的测试数据库,它有一个名为ID的列,它是一个自动设置的主键。 我试图在我使用sqladapter创建的数据表中添加一个新行 当我将新行的ID列留空时认为sql会添加它会显示以下错误: “Column “ID” doesn’t not allow nulls 我解决了它,但给了ID任何值,如dr[“ID”] = 99999 并且它工作,但现在当SQL数据库忽略该值并且只给它正确的数字时,数据表具有99999 ID,这使得它有点令人困惑,如果我尝试插入另一条记录,可能会抛出错误 我怎么解决这个问题? 对于那个很抱歉: DataRow dr = dt.NewRow(); dr[“Name”] = “fds”;//E.Name; dr[“Age”] = 12;// E.Age; dr[“DateOfBirth”] = “1-1-1999”;// E.DoB; //dr[“ID”] = 99999; dt.Rows.InsertAt(dr, dt.Rows.Count – 1); DBOperations.UpdateTable(dt); MessageBox.Show(“Record added successfully”); static internal void UpdateTable(DataTable dt) { SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings[“MyConnectionString”].ConnectionString); SqlDataAdapter Adapter […]

有没有办法将数据从Excel工作表导入SQL Server数据库?

有没有办法在不使用批量方法的情况下将数据从Excel工作表导入SQL Server上的数据库? 请记住,我正在创建一个Web应用程序,用户将excel文件上传到页面,然后将其导入现有数据库。 批量方法使用OleDbDataReader工作,除了它复制excel表并将其粘贴到数据库而不考虑列名兼容性。 我错过了什么吗?

在C#中访问SQL Server查询的InfoMessages

我试图在消息选项卡中读取SQL Server通常在SSMS中返回的消息。 具体来自SET STATISTICS IO和TIME 。 下面的代码有效但实际上并没有给出这个输出。 任何帮助是极大的赞赏。 谢谢。 using System; using System.Collections; using System.Data.SqlClient; using System.Data; namespace ConsoleApp { class Program { static void Main(string[] args) { var cn2 = new MedusaPerf.ConnectionStringBuilder().GetTrustedConnectionString(“localhost”, “AdventureWorks2012”, false); //var cn2 = new MedusaPerf.ConnectionStringBuilder().GetStandardConnectionString(“localhost”, “AdventureWorks2012”, “testuser”, “pass”, false); string infoMessageText = “”; try { var cmd = “SET STATISTICS […]

如何将列名和表名作为参数传递给存储过程在SQL Server中?

我有一个存储过程,它将列名和表名作为参数。 ALTER PROCEDURE [dbo].[usp_TableReporting_GetColumnNamesAndValues] @concatstring AS VARCHAR(100), @Tablename as VARCHAR(100) AS BEGIN SELECT @concatstring FROM @Tablename END 这个程序给我一个错误: 必须声明标量变量@TableName 虽然我已经宣布它在顶部。