Questions tagged «ado.net»

程序员通常使用ADO.Net来访问和修改存储在关系数据库系统中的数据,尽管它也可以访问非关系源中的数据。它是Microsoft .NET Framework附带的基类库的一部分。


6
在C#中使用参数调用存储过程
我可以在程序中执行删除,插入和更新操作,并尝试通过从数据库中调用创建的存储过程来进行插入操作。 这个按钮插入我做得很好。 private void btnAdd_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(dc.Con); SqlCommand cmd = new SqlCommand("Command String", con); da.InsertCommand = new SqlCommand("INSERT INTO tblContacts VALUES (@FirstName, @LastName)", con); da.InsertCommand.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text; da.InsertCommand.Parameters.Add("@LastName", SqlDbType.VarChar).Value = txtLastName.Text; con.Open(); da.InsertCommand.ExecuteNonQuery(); con.Close(); dt.Clear(); da.Fill(dt); } 这是按钮的开始,该按钮将调用名为sp_Add_contact添加联系人的过程。的两个参数sp_Add_contact(@FirstName,@LastName)。我在Google上搜索了一个很好的例子,但没有发现任何有趣的事情。 private void button1_Click(object sender, …

3
DbArithmeticExpression参数必须具有数字通用类型
TimeSpan time24 = new TimeSpan(24, 0, 0); TimeSpan time18 = new TimeSpan(18, 0, 0); // first get today's sleeping hours List<Model.Sleep> sleeps = context.Sleeps.Where( o => (clientDateTime - o.ClientDateTimeStamp < time24) && o.ClientDateTimeStamp.TimeOfDay > time18 && clientDateTime.TimeOfDay < time18 && o.UserID == userid).ToList(); 此Linq表达式引发此异常: DbArithmeticExpression arguments must have a numeric …

7
如何更改数据表列名?
我有一个DataTable,其中有四列,例如 StudentID CourseID SubjectCode Marks ------------ ---------- ------------- -------- 1 100 MT400 80 2 100 MT400 79 3 100 MT400 88 在这里,我通过将此数据表作为XML表传递来将此数据表插入Sql服务器表。 我只想将DataTable列名“ Marks”更改为“ SubjectMarks”,然后将此DataTable作为XML表传递。 我知道如何将DataTable作为XML表传递。但是我不知道如何将DataTable列名“ Marks”更改为“ SubjectMarks”。
118 c#  asp.net  ado.net  datatable 

2
ExecuteReader需要一个开放且可用的连接。连接的当前状态为“正在连接”
当尝试通过ASP.NET在线连接到MSSQL数据库时,当两个或更多人同时连接时,我将得到以下信息: ExecuteReader需要一个开放且可用的连接。连接的当前状态为“正在连接”。 该站点在我的本地主机服务器上运行良好。 这是粗糙的代码。 public Promotion retrievePromotion() { int promotionID = 0; string promotionTitle = ""; string promotionUrl = ""; Promotion promotion = null; SqlOpenConnection(); SqlCommand sql = SqlCommandConnection(); sql.CommandText = "SELECT TOP 1 PromotionID, PromotionTitle, PromotionURL FROM Promotion"; SqlDataReader dr = sql.ExecuteReader(); while (dr.Read()) { promotionID = DB2int(dr["PromotionID"]); promotionTitle …

23
已成功与服务器建立连接,但登录前握手期间发生错误
当我尝试从本地环境连接生产数据库时,出现以下错误。 我以前可以连接生产数据库,但突然我收到以下错误消息,知道吗? 已成功与服务器建立连接,但是在登录前握手期间发生错误。(提供者:TCP提供程序,错误:0-句柄无效。) 我试图在本地PC中运行asp.net网站,该网站具有生产数据库的连接字符串,以下是我在本地环境中遇到的错误的堆栈跟踪。 > at MyWebsiteDAL.clsForumQuestion.SelectAll(Int32 CurrentPageIndex, Int32 PageSize) in D:\EDrive\My WebSites\MyWebsite\MyWebsite\MyWebsiteDAL\clsForumQuestion.cs:line 821 at CodeConnect.Default.Page_Load(Object sender, EventArgs e) in D:\EDrive\My WebSites\MyWebsite\MyWebsite\MyWebsite\Default.aspx.cs:line 100 at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 知道这里可能出了什么问题吗?


14
如何在实体框架中查询空值?
我想执行这样的查询 var result = from entry in table where entry.something == null select entry; 并IS NULL生成一个。 编辑:在前两个答案之后,我觉得有必要澄清一下我使用的是Entity Framework,而不是Linq to SQL。object.Equals()方法似乎在EF中不起作用。 编辑2号:上述查询按预期方式工作。它会正确生成IS NULL。我的生产代码是 value = null; var result = from entry in table where entry.something == value select entry; 并且生成的SQL是something = @p; @p = NULL。似乎EF可以正确转换常量表达式,但是如果涉及到变量,它将像对待普通比较一样对待它。实际上是有道理的。我将结束这个问题

2
ADO.NET DataRow-检查列是否存在
如何检查数据行中是否存在列? 我正在建立数据表来组织一些已经从数据库中撤回的数据。根据每一行中数据的类型,我需要创建一个具有不同列的数据表。然后,稍后,我想检查一下我正在查看的数据表是否具有特定的列。 我知道我可以捕获异常并以这种方式处理它,但是我很好奇datarow对象上是否有可以为我执行此操作的属性或方法? 捕获异常的方法如下: public static String CheckEmptyDataRowItem(DataRow row, String rowName, String nullValue) { try { return row[rowName].ToString(); } catch (System.ArgumentException) { return nullValue; } }


5
从数据读取器填充数据表
我在C#(MS VS2008)中做一个基本的事情,除了特定的代码外,还有更多关于适当设计的问题。 我正在创建一个数据表,然后尝试从一个数据读取器(基于SQL存储过程)加载该数据表。我想知道的是,加载数据表的最有效方法是执行while语句,还是有更好的方法。 对我来说,唯一的缺点是我必须手动输入要在while语句中添加的字段,但是我也不知道如何自动执行该操作,因为我不想从SP中选择所有字段,但是在我看来这并不是什么大问题。 尽管我对代码本身并不满意,甚至对我所问的内容并不满意,但我还是将代码片段包括在我所做的全部工作之下。此外,我想知道自己的方法是什么,如果我的策略错误/效率低下,我将在稍后寻求代码帮助。 var dtWriteoffUpload = new DataTable(); dtWriteoffUpload.Columns.Add("Unit"); dtWriteoffUpload.Columns.Add("Year"); dtWriteoffUpload.Columns.Add("Period"); dtWriteoffUpload.Columns.Add("Acct"); dtWriteoffUpload.Columns.Add("Descr"); dtWriteoffUpload.Columns.Add("DEFERRAL_TYPE"); dtWriteoffUpload.Columns.Add("NDC_Indicator"); dtWriteoffUpload.Columns.Add("Mgmt Cd"); dtWriteoffUpload.Columns.Add("Prod"); dtWriteoffUpload.Columns.Add("Node"); dtWriteoffUpload.Columns.Add("Curve_Family"); dtWriteoffUpload.Columns.Add("Sum Amount"); dtWriteoffUpload.Columns.Add("Base Curr"); dtWriteoffUpload.Columns.Add("Ledger"); cmd = util.SqlConn.CreateCommand(); cmd.CommandTimeout = 1000; cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "proc_writeoff_data_details"; cmd.Parameters.Add("@whoAmI", SqlDbType.VarChar).Value = WindowsIdentity.GetCurrent().Name; cmd.Parameters.Add("@parmEndDateKey", SqlDbType.VarChar).Value = myMostRecentActualDate; cmd.Parameters.Add("@countrykeys", SqlDbType.VarChar).Value = …
103 c#  .net  ado.net 


22
有时可以连接到SQL Server
ADO.Net应用程序有时只能连接到本地网络上的另一台服务器。给定的连接尝试成功或失败似乎是随机的。该连接使用以下形式的连接字符串: Server = THESERVER \ TheInstance; Database = TheDatabase; User Id = TheUser; 密码=密码 返回的错误是: 连接超时已过期。尝试使用登录前握手确认时,超时时间已过。 这可能是因为登录前的握手失败或服务器无法及时回复。 尝试连接到该服务器所花费的时间为-[登录前]初始化= 42030;握手= 0; .NET应用程序是一个小型测试应用程序,它执行以下代码: using (SqlConnection conn = new SqlConnection(cs)) using (SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM TheTable", conn)) { conn.Open(); int rowCount = (int)cmd.ExecuteScalar(); } TheTable很小,只有78行。 但是,在.NET应用程序收到此错误的同一台计算机上,我能够使用SSMS和连接字符串中指定的用户ID /密码连接到THESERVER。 为什么连接可能会因ADO.Net应用程序而失败,但是使用来自SSMS的相同凭据成功完成?

8
在ADO.NET中获取输出参数值
我的存储过程有一个输出参数: @ID INT OUT 如何使用ado.net检索此文件? using (SqlConnection conn = new SqlConnection(...)) { SqlCommand cmd = new SqlCommand("sproc", conn); cmd.CommandType = CommandType.StoredProcedure; // add parameters conn.Open(); // *** read output parameter here, how? conn.Close(); }
96 c#  .net  ado.net 

12
ADO.NET实体框架:更新向导不会添加表
我在项目中添加了一个新的ADO.Net实体数据模型,并使用了更新向导”将表添加到模型中。所选表中的五个被添加到设计图面上。其他两个表将不会添加。我在向导中选择它们,然后单击“完成”,但它们从未显示在设计图面上。 这是一个错误,还是在某些情况下(通过设计)无法将表添加到模型中? 更新:XML(* .edmx)揭示了问题。 <!--Errors Found During Generation: warning 6013: The table/view 'FooBar.dbo.Roles' does not have a primary key defined and no valid primary key could be inferred. This table/view has been excluded. To use the entity you will need to review your schema, add the correct keys and uncomment …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.