所以我有一个GridView设置为SqlDataSource.分页已启用,我有一个下拉菜单,可以更改每页显示的行数.我能够在单个页面中显示总行数,但我还想显示总行数.(像这样:"显示315的1 - 25").
所以,我的问题是:
1)如何获取整个DataSource的总行数?(不只是GridView)我的代码OnSelectedData方法不起作用并返回零.
2)如何让每个页面的数字显示不同?例如,在第二页上,它需要说"显示26 - 50 of 315"
这是我的代码(C#):
public partial class UserControls_BloombergAllUsersControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
int gridViewTotalRowCount;
protected void onSelectedData(object sender, SqlDataSourceStatusEventArgs e)
{
gridViewTotalRowCount = e.AffectedRows;
}
protected void GridView1_DataBound(object sender, EventArgs e)
{
int pageRowsCount = GridView1.Rows.Count;
Total1.Text = "Showing 1 - " + pageRowsCount.ToString() + " of " + gridViewTotalRowCount.ToString();
}
private void BindGridView1()
{
try
{
this.GridView1.DataBind();
if (Convert.ToInt32(DropDownList1.SelectedValue) != null)
GridView1.PageSize = Convert.ToInt32(DropDownList1.SelectedValue);
} …Run Code Online (Sandbox Code Playgroud) 我想获取已删除多少记录的行数。下面的查询返回将受影响的记录数,但是
SELECT COUNT(*) FROM suppliers
WHERE EXISTS
( SELECT customers.customer_name
FROM customers
WHERE customers.customer_id = suppliers.supplier_id
AND customer_id > 25 );
Run Code Online (Sandbox Code Playgroud)
我需要这样的东西,在删除行之后,我可以在前端显示已删除的记录数。
SELECT COUNT(*) FROM suppliers(
DELETE from supplier(
WHERE EXISTS
( SELECT customers.customer_name
FROM customers
WHERE customers.customer_id = suppliers.supplier_id
AND customer_id > 25 ));
Run Code Online (Sandbox Code Playgroud)
我不想运行查询两次,一次查询要删除的记录数,如果大于0,则运行第二次查询删除记录。
如何在不使用sybase的情况下仅选择1行rowcount?我没有权利set rowcount在sybase中.有没有办法只选择1行?
例如:
select * from table where name = 'jack'
Run Code Online (Sandbox Code Playgroud)
这会返回两行; 如何在不使用结果集的情况下仅选择一行set rowcount?
我在winform上有datagridview,你可以添加和删除它.虽然我能够成功地做到这一点,但它很奇怪.
它要求将其属性RowCount设置为1或更大.因此,即使没有添加任何项目,也始终显示单行网格.
你如何克服这个缺点?或者有办法吗?
谢谢,
我想只在db(mySQL)中没有对应的情况下才进行插入,但他不是声明.这是片段
if ($sql->rowCount() > 0) {
echo 'Non inserisci';
} else {
echo 'Inserisci';
$db->beginTransaction();
echo 'Ciao3';
$sql = $db->prepare("INSERT INTO contatti (nome,cognome) VALUES (?,?)") or die('Ciao2');
echo 'Ciao4';
$sql->execute(array($_POST['nome'],$_POST['cognome']));
echo 'Ciao5';
$db->rollBack();
}
Run Code Online (Sandbox Code Playgroud)
SELECT是哪里
$db->beginTransaction();
$sql = $db->prepare("SELECT * FROM contatti WHERE nome = ? AND cognome = ? WHERE nome = ? AND cognome = ?") or die ('Ciao1');
$sql->execute(array($_POST['nome'],$_POST['cognome']));
$db->rollBack();
Run Code Online (Sandbox Code Playgroud)
你能解释一下我的错在哪里吗?
我最近注意到,在尝试遍历表的行时,如果PRINT在涉及的循环条件之前有一条语句,则不会运行我的循环@@ROWCOUNT。
declare @s int;
select top 1 @s=sequence from myTable order by sequence;
while @@rowcount > 0
begin
print @s
select top 1 @s=sequence from myTable where sequence > @s order by sequence;
end
print @s
Run Code Online (Sandbox Code Playgroud)
上面的代码显示了预期的结果;表格中每一行的数字序列,但是,
declare @s int;
select top 1 @s=sequence from myTable order by sequence;
print @s
while @@rowcount > 0
begin
print @s
select top 1 @s=sequence from myTable where sequence > @s order by sequence;
end
print @s
Run Code Online (Sandbox Code Playgroud)
只将序列的第一个值打印两次(对于PRINT …
我正在通过此处的教程学习 EF Core ,并且遇到了 T-SQL 查询示例中使用的以下语句:
1SET NOCOUNT ON;含义(来自此处):
停止显示受 Transact-SQL 语句或存储过程影响的行数计数的消息作为结果集的一部分返回。
2SELECT @@ROWCOUNT;含义(从这里)
返回受最后一条语句影响的行数。
1和2同时使用。这对我来说很困惑。例如,这里:
exec sp_executesql N'SET NOCOUNT ON;
UPDATE [Books] SET [AuthorId] = @p0
WHERE [BookId] = @p1;
SELECT @@ROWCOUNT;
',N'@p1 int,@p0 int',@p1=4,@p0=1
Run Code Online (Sandbox Code Playgroud)
我不明白为什么有人想要在 1 的帮助下关闭 2 的效果,如果可以通过不将其添加到查询中来避免 2 的影响。即以下查询将与上述查询完全相同:
exec sp_executesql N'UPDATE [Books] SET [AuthorId] = @p0
WHERE [BookId] = @p1;
',N'@p1 int,@p0 int',@p1=4,@p0=1
Run Code Online (Sandbox Code Playgroud)
我在这里遗漏了什么或者同时使用 theSET NOCOUNT ON和 the的目的是什么SELECT @@ROWCOUNT?
t-sql sql-server entity-framework rowcount entity-framework-core
我收到错误:
"输入字符串的格式不正确."
注意:如果我将第182行更改为引号中的实际数字(即"3"或"875"),并注释掉第171行,则此代码可以正常工作.但是,第174行中的"{7}"是一个应该自动递增的字段,但不会.所以我试图在第171行得到一个"数字",它将使用行数+ 1来进行auto- =增量.
这个上有任何人吗?:-)
171 string rowCount = string.Format("SELECT COUNT(*) FROM Log WHERE Location is NULL");
173 string sql = string.Format("insert into Log values " +
174 "('{0}','{1}',{2},{3},'{4}',#{5}#,'{6}','{7}')",
175 comboBox1.Text,
176 comboBox2.Text,
177 float.Parse(textBox1.Text),
178 float.Parse(comboBox3.Text),
179 textBox3.Text,
180 textBox2.Text,
181 addRemove,
182 int.Parse(rowCount)
183 );
Run Code Online (Sandbox Code Playgroud) 当我在SQL Server 2008中获得行数时遇到问题,因为我的代码使用MySQL可以正常运行,但在SQL Server中却不能。
$sql = "SELECT TOP 1 U.Id , U.Name, U.Profile, P.Name NameProfile
FROM sa_users U
INNER JOIN sa_profiles P ON P.Id = U.Profile
WHERE User = :user AND Pass = :pass";
$result = $this->dbConnect->prepare($sql) or die ($sql);
$result->bindParam(':user',$this->data['username'],PDO::PARAM_STR);
$result->bindParam(':pass',$this->data['password'],PDO::PARAM_STR);
if (!$result->execute()) {
return false;
}
$numrows = $result->rowCount();
$jsonLogin = array();
var_dump($numrows);
if($numrows > 0) {
while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
$jsonLogin = array(
'name' => $row['Name'],
'id' => $row['Id'],
'profile' => $row['Profile'],
'n_profile' => $row['NameProfile']
); …Run Code Online (Sandbox Code Playgroud) 我有一个查询管理应用程序.以前我使用的是SQL Server数据库,并通过以前的查询来获取受影响的行数:
SELECT * FROM TABLE (或任何其他选择查询)
然后我SELECT @@ROWCOUNT去获取上次执行的查询所影响的行数.
我已阅读过SQL%ROWCOUNT,但我无法在SELECT语句中使其工作
有没有办法在Oracle数据库中执行此操作?谢谢!
编辑:
我通过执行SELECT COUNT(*) FROM (QUERY)以获取受查询影响的行数来解决这个问题,我放弃了这种方法,因为如果查询包含ORDER BY子句,它在SQL Server中不起作用.
rowcount ×10
sql ×5
c# ×2
oracle ×2
pdo ×2
php ×2
sql-server ×2
t-sql ×2
asp.net ×1
datagridview ×1
delphi-prism ×1
gridview ×1
mysql ×1
oxygene ×1
sql-delete ×1
sybase ×1