Tag: tableadapter

C# – 使用TableAdapter从存储过程返回单个值返回null

我不明白,但我添加到表适配器的存储过程只返回null值。 它应该返回一个简单的整数值。 在我使用数据集desinger的预览中,我可以清楚地得到我想要的整数值。 但由于某种原因,我无法从我的代码中获得价值。 我按照MSDN库的说明: http : //msdn.microsoft.com/en-us/library/37hwc7kt(VS.80).aspx 我的c#代码是: humansDataSetTableAdapters.ProfilesTableAdapter tableAdapter = new humansDataSetTableAdapters.ProfilesTableAdapter(); int returnValue = (int)tableAdapter.getSample(); Console.Write(returnValue); 我的存储过程getSample的代码是: DECLARE @r int SET @r = 7 RETURN @r 任何人都可以告诉我如何解决这个问题? 任何帮助将不胜感激!

使用TableAdapter插入后返回不正确的ID

当我使用TableAdapter执行插入时: int pid = this.purchaseTableAdapter.Insert(supplierid, datetime, “”, totalprice, amountpaid); 它返回错误的id 1而它应该返回15。 如何获得正确的ID?

将参数传递给SQL select语句的IN子句行为很奇怪。

我有以下查询返回2条记录(在DataSet的查询构建器中) SELECT EmpID, Name, id FROM Users WHERE (CAST(id AS Varchar(20)) IN (‘5688′,’5689′)) 现在,如果我执行相同的查询,而不是从后面的代码传递参数:String param =“’5688’,’5689’”; 它返回null。 WHERE (CAST(id AS Varchar(20)) IN (@param)) 我尝试脱掉第一个和最后一个’,但这并没有造成任何差异。 !!! id是一个独特的PK! 任何人都有线索?

Decimal通过TableAdapter从C#错误地传递到SQL Server

昨天我注意到使用TableAdapter时出现奇怪的行为,出于某种原因,当传递小数<0.1时,它会使它成为一个整数。 例如,如果我传递1.0123,我可以在SQL事件探查器中看到1.0123,但如果我传递0.0123,我将得到123.是否有已知问题? 您可以执行以下步骤来重现该问题: 创建一个新的数据库TestDatabase,并创建以下存储过程 create proc DecimalParametersSelect ( @Foo decimal(10,5) ) as select @Foo 创建一个新项目并添加一个新的DataSet文件SampleDataset。 添加一个新的TableAdapter并将DecimalParametersSelect添加为Select过程(它应该是数据库中唯一的一个)。 运行您的项目并尝试选择一些数据,例如 using (SampleDatasetTableAdapters.DecimalParametersSelectTableAdapter dta = new SampleDatasetTableAdapters.DecimalParametersSelectTableAdapter()) { var table = dta.GetData(0.01588M); } 在分析器中,您应该看到传入的值是1588(有趣的是,返回的值在C#中被正确识别为0.01588)

从TableAdapter获取@@ IDENTITY

我正在尝试完成一个看似简单的任务,这个任务已经变成了几个小时的冒险:从TableAdapter.Insert()获取@@Identity 。 这是我的代码: protected void submitBtn_Click(object sender, EventArgs e) { AssetsDataSetTableAdapters.SitesTableAdapter sta = new AssetsDataSetTableAdapters.SitesTableAdapter(); int insertedID = sta.Insert(siteTxt.Text,descTxt.Text); AssetsDataSetTableAdapters.NotesTableAdapter nta = new AssetsDataSetTableAdapters.NotesTableAdapter(); nta.Insert(notesTxt.Text, insertedID, null,null,null,null,null,null); Response.Redirect(“~/Default.aspx”); } 一个答案表明,我可能要做的就是更改ExecuteMode 。 我试过了。 这使得GetData()退出工作(因为我现在返回一个标量而不是rowdata)(我需要保留GetData())。 它也没有解决insertID变量仍然设置为1的问题。 我尝试在TypedDataSet.XSD创建第二个TableAdapter并将该适配器的属性设置为“标量”,但它仍然失败,变量值为1。 生成的insert命令是 INSERT INTO [dbo].[Sites] ([Name], [Description]) VALUES (@Name, @Description); SELECT Id, Name, Description FROM Sites WHERE (Id = SCOPE_IDENTITY()) 并且还设置了“刷新数据表”(在Insert和Update语句之后添加select语句以检索Identity)。 […]

全局控制TableAdapter命令超时

我有一个带有QueriesTableAdapter的DataSet。 为了控制SqlCommand.CommandTimeout,我添加了一个名为QueriesTableAdapter的分部类,其中包含一个名为ChangeTimeout的公共方法。 partial class QueriesTableAdapter { public void ChangeTimeout(int timeout) { foreach (System.Data.SqlClient.SqlCommand cmd in CommandCollection) { cmd.CommandTimeout = timeout; } } } 对于每个拥有QueriesTableAdapter的DataSet,我可以在执行之前设置CommandTimeout。 using (NameSpace.DataSet.DataSetTableAdapters.QueriesTableAdapter ta = new NameSpace.DataSet.DataSetTableAdapters.QueriesTableAdapter()) { ta.ChangeTimeout(3600); ta.DoSomething(); } 这种方法很有效,因为“QueriesTableAdapter”是在DataSet设计器中为您命名的。 我遇到的问题是具有唯一名称的TableAdapter。 例如,如果我有一个名为Person的DataTable和一个名为PersonTableAdapter的TableAdaper,我必须像编写QueriesTableAdaper类一样编写PersonTableAdapter分部类。 我有数百个具有唯一TableAdapter名称的DataTable。 我不想为每个人创建一个部分类。 如何以全局方式访问部分类的基础SqlCommand对象?

将数据集保存到数据库

我正在尝试将数据集保存到数据库。 我从另一个类获得了一个数据集,现在用户在datagridview上对表单进行更改,然后需要将更改的数据集保存在数据库中。 我使用下面的代码; 它不会产生任何错误,但数据不会保存在数据库中。 public class myForm { DataSet myDataSet = new DataSet(); public void PouplateGridView() { try { SqlService sql = new SqlService(connectionString); // Valid Connection String, No Errors myDataSet = sql.ExecuteSqlDataSet(“SELECT * FROM Qualification”); // Returns a DataSet myDataGridView.DataSource = myDataSet.Tables[0]; myDataGridView.AutoGenerateColumns = true; myDataGridView.AutoResizeColumns(); } catch (Exception ex) { MessageBox.Show(ex.InnerException + Environment.NewLine […]

在传递带有已修改行的DataRow集合时,Update需要有效的UpdateCommand

所以我上周有这个工作。 至少,我以为我做到了! DataGridView更新 然后我今天又开始研究这个项目了 在传递带有已修改行的DataRow集合时,Update需要有效的UpdateCommand。 上 scDB.SSIS_Configurations_StagingDataTable table = (scDB.SSIS_Configurations_StagingDataTable)stagingGrid.DataSource; myStagingTableAdapter.Update(table); StagingTableAdapter有一个额外的查询,它将’filter’作为参数。 那用于填充DataGridView 。 在创建该查询的向导中,我看到“生成了更新”。 我发现大多数有此错误的post都要求使用命令构建器生成更新语句。 我该怎么办?